diff base/datasets/datasets-db/datasets-db-setup.lisp @ 250:b3260d1d2419

Add onset-in-bar-relative-to-tactus. This depends on tactus-duration, which needs revisiting.
author Jamie Forth <j.forth@gold.ac.uk>
date Thu, 24 Feb 2011 11:23:18 +0000
parents
children 6a3adca16910
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/base/datasets/datasets-db/datasets-db-setup.lisp	Thu Feb 24 11:23:18 2011 +0000
@@ -0,0 +1,46 @@
+(cl:in-package #:amuse-database-admin)
+
+(defun create-datasets-table (&optional (database *amuse-database*))
+  (%create-datasets-table database)
+  (%create-datasets-join-table database))
+
+(defun drop-datasets-table (&optional (database *amuse-database*))
+  (%drop-datasets-table database)
+  (%drop-datasets-join-table database))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Helper functions
+
+(defun %create-datasets-table (database)
+  #.(clsql:locally-enable-sql-reader-syntax)
+  (clsql:create-table "amuse_datasets"
+		      '(([|dataset-id|] clsql:smallint :unsigned
+			 :not-null :auto-increment :primary-key)
+			([|description|] (clsql:varchar 255)
+			 :not-null))
+		      :database database
+		      :transactions t)
+  #.(clsql:locally-disable-sql-reader-syntax))
+
+(defun %create-datasets-join-table (database)
+  #.(clsql:locally-enable-sql-reader-syntax)
+  (clsql:create-table "amuse_datasets_join"
+		      '(([|dataset-id|] clsql:smallint :unsigned
+			 :not-null)
+			([|implementation-id|] clsql:smallint
+			 :unsigned :not-null)
+			([|composition-id|] clsql:smallint :not-null))
+		      :constraints '("KEY (dataset_id)")
+		      :database database
+		      :transactions t)
+  #.(clsql:locally-disable-sql-reader-syntax))
+
+(defun %drop-datasets-table (database)
+  (clsql:drop-table "amuse_datasets"
+		    :database database
+		    :if-does-not-exist :ignore))
+
+(defun %drop-datasets-join-table (database)
+  (clsql:drop-table "amuse_datasets_join"
+		    :database database
+		    :if-does-not-exist :ignore))