aboutsummaryrefslogtreecommitdiff
path: root/migrations
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-03-22 11:23:59 +0300
committerFrederick Muriuki Muriithi2023-03-22 11:38:48 +0300
commit3d8d24cbcd730e9540f3a4039b705eb8ab0817cb (patch)
treeaad8ce17b9e45f583240f040ae71eae24f8faa16 /migrations
parent86b7a2589fb0956f6ef6303d64d53b5d5f6b9d43 (diff)
downloadgenenetwork3-3d8d24cbcd730e9540f3a4039b705eb8ab0817cb.tar.gz
auth: migrations for linking phenotype data
Diffstat (limited to 'migrations')
-rw-r--r--migrations/auth/20230322_01_0dDZR-create-linked-phenotype-data-table.py30
-rw-r--r--migrations/auth/20230322_02_Ll854-create-phenotype-resources-table.py22
2 files changed, 52 insertions, 0 deletions
diff --git a/migrations/auth/20230322_01_0dDZR-create-linked-phenotype-data-table.py b/migrations/auth/20230322_01_0dDZR-create-linked-phenotype-data-table.py
new file mode 100644
index 0000000..647325f
--- /dev/null
+++ b/migrations/auth/20230322_01_0dDZR-create-linked-phenotype-data-table.py
@@ -0,0 +1,30 @@
+"""
+Create linked-phenotype-data table
+"""
+
+from yoyo import step
+
+__depends__ = {'20230306_02_7GnRY-add-system-user-list-privilege-to-system-administrator-and-group-leader-roles'}
+
+steps = [
+ step(
+ """
+ CREATE TABLE IF NOT EXISTS linked_phenotype_data
+ -- Link the data in MariaDB to user groups in the auth system
+ (
+ data_link_id TEXT NOT NULL PRIMARY KEY, -- A new ID for the auth system
+ group_id TEXT NOT NULL, -- The user group the data is linked to
+ SpeciesId TEXT NOT NULL, -- The species in MariaDB
+ InbredSetId TEXT NOT NULL, -- The traits group in MariaDB
+ PublishFreezeId TEXT NOT NULL, -- The dataset Id in MariaDB
+ dataset_name TEXT, -- dataset Name in MariaDB
+ dataset_fullname, -- dataset FullName in MariaDB
+ dataset_shortname, -- dataset ShortName in MariaDB
+ PublishXRefId TEXT NOT NULL, -- The trait's ID in MariaDB
+ FOREIGN KEY (group_id)
+ REFERENCES groups(group_id) ON UPDATE CASCADE ON DELETE RESTRICT
+ UNIQUE (SpeciesId, InbredSetId, PublishFreezeId, PublishXRefId)
+ ) WITHOUT ROWID
+ """,
+ "DROP TABLE IF EXISTS linked_phenotype_data")
+]
diff --git a/migrations/auth/20230322_02_Ll854-create-phenotype-resources-table.py b/migrations/auth/20230322_02_Ll854-create-phenotype-resources-table.py
new file mode 100644
index 0000000..6bd8782
--- /dev/null
+++ b/migrations/auth/20230322_02_Ll854-create-phenotype-resources-table.py
@@ -0,0 +1,22 @@
+"""
+Create phenotype_resources table
+"""
+
+from yoyo import step
+
+__depends__ = {'20230322_01_0dDZR-create-linked-phenotype-data-table'}
+
+steps = [
+ step(
+ """
+ CREATE TABLE IF NOT EXISTS phenotype_resources
+ -- Link phenotype data to specific resources
+ (
+ resource_id TEXT NOT NULL, -- A resource can have multiple data items
+ data_link_id TEXT NOT NULL,
+ PRIMARY KEY(resource_id, data_link_id),
+ UNIQUE (data_link_id) -- ensure data is linked to only one resource
+ )
+ """,
+ "DROP TABLE IF EXISTS phenotype_resources")
+]