From 610a69fca1a0e99a7d36cc55c3ee2167381e2bf7 Mon Sep 17 00:00:00 2001
From: Marc Chakiachvili <mchakiachvili@ebi.ac.uk>
Date: Wed, 19 Dec 2018 09:39:31 +0000
Subject: [PATCH] Updated SQL tables script with all updates

---
 misc-scripts/ontology/sql/patch_95_96_b.sql |   4 +-
 misc-scripts/ontology/sql/tables.sql        | 203 ++++++++++----------
 2 files changed, 102 insertions(+), 105 deletions(-)

diff --git a/misc-scripts/ontology/sql/patch_95_96_b.sql b/misc-scripts/ontology/sql/patch_95_96_b.sql
index 50886e7f0e..92934a805d 100644
--- a/misc-scripts/ontology/sql/patch_95_96_b.sql
+++ b/misc-scripts/ontology/sql/patch_95_96_b.sql
@@ -21,6 +21,6 @@
 --  Added fields to Term and Ontology tables
 
 -- Added columns
-ALTER TABLE ontology ADD COLUMN `title` varchar(255) NULL;
+ALTER TABLE ontology ADD COLUMN `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL;
 
-ALTER TABLE term ADD COLUMN `iri` varchar(1000) NULL;
+ALTER TABLE term ADD COLUMN `iri` text NULL;
diff --git a/misc-scripts/ontology/sql/tables.sql b/misc-scripts/ontology/sql/tables.sql
index b4c7873b0d..00a7d783d7 100644
--- a/misc-scripts/ontology/sql/tables.sql
+++ b/misc-scripts/ontology/sql/tables.sql
@@ -18,15 +18,14 @@
 -- The schema for the ensembl_ontology_NN database.
 -- ---------------------------------------------------------------------
 
-CREATE TABLE meta (
-  meta_id       INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  meta_key      VARCHAR(64) NOT NULL,
-  meta_value    VARCHAR(128),
-  species_id    INT UNSIGNED DEFAULT NULL,
-
-  PRIMARY KEY (meta_id),
-  UNIQUE INDEX key_value_idx (meta_key, meta_value)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
+CREATE TABLE `meta` (
+  `meta_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `meta_key` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
+  `meta_value` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
+  `species_id` int(10) unsigned DEFAULT NULL,
+  PRIMARY KEY (`meta_id`),
+  UNIQUE KEY `key_value_idx` (`meta_key`,`meta_value`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
 
 # Add schema type and schema version to the meta table
 INSERT INTO meta (meta_key, meta_value) VALUES
@@ -38,100 +37,98 @@ INSERT INTO meta (meta_key, meta_value)
   VALUES ('patch', 'patch_95_96_a.sql|schema_version');
 
 
-CREATE TABLE ontology (
-  ontology_id   INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  name          VARCHAR(64) NOT NULL,
-  namespace     VARCHAR(64) NOT NULL,
-  data_version  VARCHAR(64) DEFAULT NULL,
-  `title` varchar(255) NULL,
-  PRIMARY KEY (ontology_id),
-  UNIQUE INDEX name_namespace_idx (name, namespace)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE subset (
-  subset_id     INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  name          VARCHAR(64) NOT NULL,
-  definition    VARCHAR(128) NOT NULL,
-
-  PRIMARY KEY (subset_id),
-  UNIQUE INDEX name_idx (name)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE term (
-  term_id       INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  ontology_id   INT UNSIGNED NOT NULL,
-  subsets       TEXT,
-  accession     VARCHAR(64) NOT NULL,
-  name          VARCHAR(255) NOT NULL,
-  definition    TEXT,
-  is_root       INT NOT NULL DEFAULT 0,
-  is_obsolete   INT NOT NULL DEFAULT 0,
-  `iri` varchar(1000) NULL,
-  PRIMARY KEY (term_id),
-  UNIQUE INDEX accession_idx (accession),
-  UNIQUE INDEX ontology_acc_idx (ontology_id, accession),
-  INDEX name_idx (name)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE synonym (
-  synonym_id    INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  term_id       INT UNSIGNED NOT NULL,
-  name          TEXT NOT NULL,
-  type		ENUM('EXACT', 'BROAD', 'NARROW', 'RELATED'),
-  dbxref        VARCHAR(258)  NULL,
-
-  PRIMARY KEY (synonym_id),
-  UNIQUE INDEX term_synonym_idx (term_id, synonym_id),
-  INDEX name_idx (name(50))
-) COLLATE=utf8_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE alt_id (
-  alt_id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  term_id       INT UNSIGNED NOT NULL,
-  accession     VARCHAR(64) NOT NULL,
-
-  PRIMARY KEY (alt_id),
-  UNIQUE INDEX term_alt_idx (term_id, alt_id),
-  INDEX accession_idx (accession(50))
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE relation_type (
-  relation_type_id  INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  name              VARCHAR(64) NOT NULL,
-
-  PRIMARY KEY (relation_type_id),
-  UNIQUE INDEX name_idx (name)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE relation (
-  relation_id       INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  child_term_id     INT UNSIGNED NOT NULL,
-  parent_term_id    INT UNSIGNED NOT NULL,
-  relation_type_id  INT UNSIGNED NOT NULL,
-  intersection_of   TINYINT UNSIGNED NOT NULL DEFAULT 0,
-  ontology_id       INT UNSIGNED NOT NULL,
-
-  PRIMARY KEY (relation_id),
-  UNIQUE INDEX child_parent_idx
-    (child_term_id, parent_term_id, relation_type_id, intersection_of, ontology_id),
-  INDEX parent_idx (parent_term_id)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
-
-CREATE TABLE closure (
-  closure_id        INT UNSIGNED NOT NULL AUTO_INCREMENT,
-  child_term_id     INT UNSIGNED NOT NULL,
-  parent_term_id    INT UNSIGNED NOT NULL,
-  subparent_term_id INT UNSIGNED,
-  distance          TINYINT UNSIGNED NOT NULL,
-  ontology_id       INT UNSIGNED NOT NULL,
-  confident_relationship BOOL NOT NULL DEFAULT 0,
-
-  PRIMARY KEY (closure_id),
-  UNIQUE INDEX child_parent_idx
-    (child_term_id, parent_term_id, subparent_term_id, ontology_id),
-  INDEX parent_subparent_idx
-    (parent_term_id, subparent_term_id)
-) COLLATE=latin1_swedish_ci ENGINE=MyISAM;
+CREATE TABLE `ontology` (
+  `ontology_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
+  `namespace` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
+  `data_version` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
+  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
+  PRIMARY KEY (`ontology_id`),
+  UNIQUE KEY `ontology_name_namespace_idx` (`name`,`namespace`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+
+CREATE TABLE `subset` (
+  `subset_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
+  `definition` varchar(511) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+  PRIMARY KEY (`subset_id`),
+  UNIQUE KEY `name` (`name`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+CREATE TABLE `term` (
+  `term_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `ontology_id` int(10) unsigned NOT NULL,
+  `subsets` text,
+  `accession` varchar(64) NOT NULL,
+  `name` varchar(255) NOT NULL,
+  `definition` text,
+  `is_root` int(11) NOT NULL DEFAULT '0',
+  `is_obsolete` int(11) NOT NULL DEFAULT '0',
+  `iri` text,
+  PRIMARY KEY (`term_id`),
+  UNIQUE KEY `accession` (`accession`),
+  UNIQUE KEY `term_ontology_acc_idx` (`ontology_id`,`accession`),
+  KEY `term_name_idx` (`name`(100))
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE `synonym` (
+  `synonym_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `term_id` int(10) unsigned NOT NULL,
+  `name` text CHARACTER SET utf8 NOT NULL,
+  `type` enum('EXACT','BROAD','NARROW','RELATED') COLLATE utf8_unicode_ci DEFAULT NULL,
+  `dbxref` varchar(500) COLLATE utf8_unicode_ci DEFAULT NULL,
+  PRIMARY KEY (`synonym_id`),
+  UNIQUE KEY `synonym_term_idx` (`term_id`,`synonym_id`),
+  KEY `synonym_name_idx` (`name`(100))
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
+
+CREATE TABLE `alt_id` (
+  `alt_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `term_id` int(10) unsigned NOT NULL,
+  `accession` varchar(64) NOT NULL,
+  PRIMARY KEY (`alt_id`),
+  UNIQUE KEY `term_alt_idx` (`term_id`,`alt_id`),
+  KEY `ix_alt_id_accession` (`accession`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+CREATE TABLE `relation_type` (
+  `relation_type_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `name` varchar(64) NOT NULL,
+  PRIMARY KEY (`relation_type_id`),
+  UNIQUE KEY `name` (`name`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+
+CREATE TABLE `relation` (
+  `relation_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `child_term_id` int(10) unsigned NOT NULL,
+  `parent_term_id` int(10) unsigned NOT NULL,
+  `relation_type_id` int(10) unsigned NOT NULL,
+  `intersection_of` tinyint(1) NOT NULL,
+  `ontology_id` int(10) unsigned NOT NULL,
+  PRIMARY KEY (`relation_id`),
+  UNIQUE KEY `child_parent_idx` (`child_term_id`,`parent_term_id`,`relation_type_id`,`intersection_of`,`ontology_id`),
+  KEY `ix_relation_parent_term_id` (`parent_term_id`),
+  KEY `ix_relation_relation_type_id` (`relation_type_id`),
+  KEY `ix_relation_ontology_id` (`ontology_id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+
+CREATE TABLE `closure` (
+  `closure_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `child_term_id` int(10) unsigned NOT NULL,
+  `parent_term_id` int(10) unsigned NOT NULL,
+  `subparent_term_id` int(10) unsigned DEFAULT NULL,
+  `distance` tinyint(3) unsigned NOT NULL,
+  `ontology_id` int(10) unsigned NOT NULL,
+  `confident_relationship` tinyint(1) NOT NULL,
+  PRIMARY KEY (`closure_id`),
+  UNIQUE KEY `closure_child_parent_idx` (`child_term_id`,`parent_term_id`,`subparent_term_id`,`ontology_id`),
+  KEY `ix_closure_subparent_term_id` (`subparent_term_id`),
+  KEY `ix_closure_ontology_id` (`ontology_id`),
+  KEY `parent_subparent_idx` (`parent_term_id`,`subparent_term_id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 -- There are additional tables in the released databases called
 -- "aux_XX_YY_map".  These are created by the "add_subset_maps.pl"
-- 
GitLab