j@250: (cl:in-package #:amuse-database-admin) j@250: j@251: (defun create-datasets-table (&optional (database j@251: amuse-database-admin:*amuse-database*)) j@250: (%create-datasets-table database) j@250: (%create-datasets-join-table database)) j@250: j@251: (defun drop-datasets-table (&optional (database j@251: amuse-database-admin:*amuse-database*)) j@250: (%drop-datasets-table database) j@250: (%drop-datasets-join-table database)) j@250: j@251: j@251: ;;;===================================================================== j@250: ;;; Helper functions j@251: ;;;===================================================================== j@250: j@250: (defun %create-datasets-table (database) j@250: #.(clsql:locally-enable-sql-reader-syntax) j@250: (clsql:create-table "amuse_datasets" j@250: '(([|dataset-id|] clsql:smallint :unsigned j@250: :not-null :auto-increment :primary-key) j@250: ([|description|] (clsql:varchar 255) j@250: :not-null)) j@250: :database database j@250: :transactions t) j@250: #.(clsql:locally-disable-sql-reader-syntax)) j@250: j@250: (defun %create-datasets-join-table (database) j@250: #.(clsql:locally-enable-sql-reader-syntax) j@250: (clsql:create-table "amuse_datasets_join" j@250: '(([|dataset-id|] clsql:smallint :unsigned j@250: :not-null) j@250: ([|implementation-id|] clsql:smallint j@250: :unsigned :not-null) j@250: ([|composition-id|] clsql:smallint :not-null)) j@250: :constraints '("KEY (dataset_id)") j@250: :database database j@250: :transactions t) j@250: #.(clsql:locally-disable-sql-reader-syntax)) j@250: j@250: (defun %drop-datasets-table (database) j@250: (clsql:drop-table "amuse_datasets" j@250: :database database j@250: :if-does-not-exist :ignore)) j@250: j@250: (defun %drop-datasets-join-table (database) j@250: (clsql:drop-table "amuse_datasets_join" j@250: :database database j@250: :if-does-not-exist :ignore))