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