Fix update scripts.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Fri, 1 Oct 2010 10:20:58 +0000 (12:20 +0200)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Fri, 1 Oct 2010 12:08:47 +0000 (14:08 +0200)
Warning, this disable some foreign keys definition that didn't work. The
disabled keys are commented in 11_jobs and 12_profiles.

Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
upgrade/1.0.1/00_job.sql
upgrade/1.0.1/06_ids.sql
upgrade/1.0.1/07_ids_foreign_keys.sql
upgrade/1.0.1/11_job.sql [new file with mode: 0644]
upgrade/1.0.1/12_profiles.sql [moved from upgrade/1.0.1/01_profiles.sql with 56% similarity]
upgrade/1.0.1/99_jobs.sql.postphp [moved from upgrade/1.0.1/99_jobs.sql with 100% similarity]
upgrade/1.0.1/tokenize_job_terms.php
upgrade/1.0.1/update.sh [new file with mode: 0755]

index d7e5365..7b6e6ad 100644 (file)
@@ -4,61 +4,4 @@ ALTER TABLE profile_job_enum MODIFY COLUMN email VARCHAR(255) DEFAULT NULL;
 ALTER TABLE profile_job_enum MODIFY COLUMN NAF_code CHAR(5) DEFAULT NULL;
 ALTER TABLE profile_job_enum MODIFY COLUMN AX_code BIGINT(10) DEFAULT NULL;
 
-CREATE TABLE `profile_job_term_enum` (
-  `jtid` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'term id',
-  `name` varchar(255) NOT NULL COMMENT 'name used in hierarchical context',
-  `full_name` varchar(255) NOT NULL COMMENT 'name to use whithout context',
-  PRIMARY KEY (`jtid`)
-) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms';
-
-CREATE TABLE `profile_job_term_relation` (
-  `jtid_1` int unsigned NOT NULL COMMENT 'first term id',
-  `jtid_2` int unsigned NOT NULL COMMENT 'second term id',
-  `rel` enum('narrower','related') NOT NULL DEFAULT 'narrower' COMMENT 'relation between the second to the first term (second is narrower than first)',
-  `computed` enum('original','computed') NOT NULL DEFAULT 'original' COMMENT 'relations can be computed from two original relations',
-  PRIMARY KEY (`jtid_1`, `computed`, `jtid_2`),
-  FOREIGN KEY (`jtid_1`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE,
-  INDEX `jtid_2` (`jtid_2`),
-  FOREIGN KEY (`jtid_2`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms relations';
-
-CREATE TABLE `profile_job_term_search` (
-  `search` varchar(50) NOT NULL COMMENT 'search token for a term',
-  `jtid` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'term id',
-  PRIMARY KEY (`search`, `jtid`),
-  INDEX `jtid` (`jtid`),
-  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB, CHARSET=utf8, COMMENT='search tokens of job terms';
-
-CREATE TABLE `profile_job_term` (
-  `pid` int NOT NULL COMMENT 'profile id',
-  `jid` tinyint unsigned NOT NULL COMMENT 'job id in profile',
-  `jtid` int unsigned NOT NULL COMMENT 'term id',
-  `computed` enum('original','computed') NOT NULL DEFAULT 'original' COMMENT 'terms can be added by user or computed from entreprise',
-  PRIMARY KEY (`pid`, `jid`, `jtid`),
-  INDEX `jtid` (`jtid`),
-  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms for jobs in profiles';
-
-CREATE TABLE `profile_mentor_term` (
-  `pid` int NOT NULL COMMENT 'profile id',
-  `jtid` int unsigned NOT NULL COMMENT 'term id',
-  PRIMARY KEY (`pid`, `jtid`),
-  INDEX `jtid` (`jtid`),
-  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms for mentorship in profiles';
-
-CREATE TABLE `profile_job_entreprise_term` (
-  `eid` int unsigned NOT NULL COMMENT 'entreprise id',
-  `jtid` int unsigned NOT NULL COMMENT 'term id',
-  PRIMARY KEY (`eid`, `jtid`),
-  INDEX `jtid` (`jtid`),
-  FOREIGN KEY (`eid`) REFERENCES `profile_job_enum` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
-  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms associated to entreprises';
-
--- Adds the root term --
-INSERT INTO `profile_job_term_enum` (`jtid`, `name`) VALUES (0, '');
-UPDATE `profile_job_term_enum` SET `jtid` = 0 WHERE `name` = '';
-
 -- vim:set syntax=mysql:
index 4d10344..242d4a5 100644 (file)
@@ -32,7 +32,6 @@ ALTER TABLE log_last_sessions MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE log_sessions MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE newsletter_ins MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE payment_transactions MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
-ALTER TABLE profile_modifications MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE register_marketing MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE register_mstats MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE register_pending MODIFY COLUMN uid INT(11) UNSIGNED DEFAULT NULL;
@@ -73,14 +72,11 @@ ALTER TABLE profile_corps MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_display MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_education MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_job MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
-ALTER TABLE profile_job_term MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_langskills MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_medals MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_mentor MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_mentor_country MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_mentor_sector MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
-ALTER TABLE profile_mentor_term MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
-ALTER TABLE profile_modifications MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_name MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_networking MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
 ALTER TABLE profile_phones MODIFY COLUMN pid INT(11) UNSIGNED DEFAULT NULL;
index a2235cc..59d3fb2 100644 (file)
@@ -47,7 +47,6 @@ ALTER TABLE log_last_sessions ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON
 ALTER TABLE log_sessions ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE newsletter_ins ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE payment_transactions ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
-ALTER TABLE profile_modifications ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE register_marketing ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE register_mstats ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE register_pending ADD FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE;
@@ -84,14 +83,11 @@ ALTER TABLE profile_corps ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DEL
 ALTER TABLE profile_display ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_education ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_job ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
-ALTER TABLE profile_job_term ADD FOREIGN KEY (pid, jid) REFERENCES profile_job (pid, id) ON DELETE CASCADE ON UPDATE CASCADE,
 ALTER TABLE profile_langskills ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_medals ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_mentor ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_mentor_country ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_mentor_sector ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
-ALTER TABLE profile_mentor_term ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
-ALTER TABLE profile_modifications ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_name ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_networking ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
 ALTER TABLE profile_phones ADD FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/upgrade/1.0.1/11_job.sql b/upgrade/1.0.1/11_job.sql
new file mode 100644 (file)
index 0000000..a01dfbf
--- /dev/null
@@ -0,0 +1,67 @@
+DROP TABLE IF EXISTS profile_job_entreprise_term;
+DROP TABLE IF EXISTS profile_mentor_term;
+DROP TABLE IF EXISTS profile_job_term;
+DROP TABLE IF EXISTS profile_job_term_search;
+DROP TABLE IF EXISTS profile_job_term_relation;
+DROP TABLE IF EXISTS profile_job_term_enum;
+
+CREATE TABLE `profile_job_term_enum` (
+  `jtid` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'term id',
+  `name` varchar(255) NOT NULL COMMENT 'name used in hierarchical context',
+  `full_name` varchar(255) NOT NULL COMMENT 'name to use whithout context',
+  PRIMARY KEY (`jtid`)
+) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms';
+
+CREATE TABLE `profile_job_term_relation` (
+  `jtid_1` int unsigned NOT NULL COMMENT 'first term id',
+  `jtid_2` int unsigned NOT NULL COMMENT 'second term id',
+  `rel` enum('narrower','related') NOT NULL DEFAULT 'narrower' COMMENT 'relation between the second to the first term (second is narrower than first)',
+  `computed` enum('original','computed') NOT NULL DEFAULT 'original' COMMENT 'relations can be computed from two original relations',
+  PRIMARY KEY (`jtid_1`, `computed`, `jtid_2`),
+  FOREIGN KEY (`jtid_1`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE,
+  INDEX `jtid_2` (`jtid_2`),
+  FOREIGN KEY (`jtid_2`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms relations';
+
+CREATE TABLE `profile_job_term_search` (
+  `search` varchar(50) NOT NULL COMMENT 'search token for a term',
+  `jtid` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'term id',
+  PRIMARY KEY (`search`, `jtid`),
+  INDEX `jtid` (`jtid`),
+  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB, CHARSET=utf8, COMMENT='search tokens of job terms';
+
+CREATE TABLE `profile_job_term` (
+  `pid` INT(11) UNSIGNED DEFAULT NULL COMMENT 'profile id',
+  `jid` tinyint(1) unsigned NOT NULL COMMENT 'job id in profile',
+  `jtid` int unsigned NOT NULL COMMENT 'term id',
+  `computed` enum('original','computed') NOT NULL DEFAULT 'original' COMMENT 'terms can be added by user or computed from entreprise',
+  PRIMARY KEY (`pid`, `jid`, `jtid`),
+  INDEX `jtid` (`jtid`),
+  #FOREIGN KEY (pid, jid) REFERENCES profile_job (pid, id) ON DELETE CASCADE ON UPDATE CASCADE,
+  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms for jobs in profiles';
+
+CREATE TABLE `profile_mentor_term` (
+  `pid` INT(11) UNSIGNED DEFAULT NULL COMMENT 'profile id',
+  `jtid` int unsigned NOT NULL COMMENT 'term id',
+  PRIMARY KEY (`pid`, `jtid`),
+  INDEX `jtid` (`jtid`),
+  #FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE,
+  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms for mentorship in profiles';
+
+CREATE TABLE `profile_job_entreprise_term` (
+  `eid` int(6) unsigned default NULL COMMENT 'entreprise id',
+  `jtid` int unsigned NOT NULL COMMENT 'term id',
+  PRIMARY KEY (`eid`, `jtid`),
+  INDEX `jtid` (`jtid`),
+  #FOREIGN KEY (`eid`) REFERENCES `profile_job_enum` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+  FOREIGN KEY (`jtid`) REFERENCES `profile_job_term_enum` (`jtid`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB, CHARSET=utf8, COMMENT='job terms associated to entreprises';
+
+-- Adds the root term --
+INSERT INTO `profile_job_term_enum` (`jtid`, `name`) VALUES (0, '');
+UPDATE `profile_job_term_enum` SET `jtid` = 0 WHERE `name` = '';
+
+-- vim:set syntax=mysql:
similarity index 56%
rename from upgrade/1.0.1/01_profiles.sql
rename to upgrade/1.0.1/12_profiles.sql
index c7187ae..1c5a8d5 100644 (file)
@@ -1,13 +1,15 @@
 DROP TABLE IF EXISTS profile_modifications;
 
 CREATE TABLE profile_modifications (
-  pid INT(11) NOT NULL,
-  uid INT(11) NOT NULL,
+  pid INT(11) UNSIGNED DEFAULT NULL,
+  uid INT(11) UNSIGNED DEFAULT NULL,
   field VARCHAR(60) NOT NULL,
   oldText TEXT NOT NULL,
   newText TEXT NOT NULL,
   pub ENUM('private', 'ax', 'public') NOT NULL DEFAULT 'private',
   PRIMARY KEY(pid, uid, field)
+  #FOREIGN KEY (uid) REFERENCES accounts (uid) ON DELETE CASCADE ON UPDATE CASCADE,
+  #FOREIGN KEY (pid) REFERENCES profiles (pid) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB, CHARSET=utf8;
 
 -- vim:set syntax=mysql:
index bbe2c5f..5210fc3 100755 (executable)
@@ -1,7 +1,6 @@
 #!/usr/bin/php5
 <?php
 require_once 'connect.db.inc.php';
-require_once 'class/jobterms.php';
 
 $globals->debug = 0; //do not store backtraces
 
diff --git a/upgrade/1.0.1/update.sh b/upgrade/1.0.1/update.sh
new file mode 100755 (executable)
index 0000000..0aa2807
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+. ../inc/pervasive.sh
+
+###########################################################
+[ "$DATABASE" != "x4dat" ] || die "Cannot target x4dat"
+
+confirm "* Running database upgrade scripts"
+mysql_run_directory .
+
+confirm "* Running upgrade scripts"
+script_run ./phone.php
+script_run ./xnet_directory_name.php
+script_run ./sectors_as_terms.php
+script_run ./positions_as_terms.php
+script_run ./tokenize_job_terms.php
+
+confirm "* Running post-PHP database upgrade script"
+mysql_run ./99_jobs.sql.postphp