From: Florent Bruneau Date: Fri, 1 Oct 2010 10:20:58 +0000 (+0200) Subject: Fix update scripts. X-Git-Tag: xorg/1.0.1~126 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=f73d928119c633d998c1fc3c3b78613d3fe438f3;p=platal.git Fix update scripts. 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 --- diff --git a/upgrade/1.0.1/00_job.sql b/upgrade/1.0.1/00_job.sql index d7e5365..7b6e6ad 100644 --- a/upgrade/1.0.1/00_job.sql +++ b/upgrade/1.0.1/00_job.sql @@ -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: diff --git a/upgrade/1.0.1/06_ids.sql b/upgrade/1.0.1/06_ids.sql index 4d10344..242d4a5 100644 --- a/upgrade/1.0.1/06_ids.sql +++ b/upgrade/1.0.1/06_ids.sql @@ -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; diff --git a/upgrade/1.0.1/07_ids_foreign_keys.sql b/upgrade/1.0.1/07_ids_foreign_keys.sql index a2235cc..59d3fb2 100644 --- a/upgrade/1.0.1/07_ids_foreign_keys.sql +++ b/upgrade/1.0.1/07_ids_foreign_keys.sql @@ -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 index 0000000..a01dfbf --- /dev/null +++ b/upgrade/1.0.1/11_job.sql @@ -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: diff --git a/upgrade/1.0.1/01_profiles.sql b/upgrade/1.0.1/12_profiles.sql 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 --- a/upgrade/1.0.1/01_profiles.sql +++ b/upgrade/1.0.1/12_profiles.sql @@ -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: diff --git a/upgrade/1.0.1/99_jobs.sql b/upgrade/1.0.1/99_jobs.sql.postphp similarity index 100% rename from upgrade/1.0.1/99_jobs.sql rename to upgrade/1.0.1/99_jobs.sql.postphp diff --git a/upgrade/1.0.1/tokenize_job_terms.php b/upgrade/1.0.1/tokenize_job_terms.php index bbe2c5f..5210fc3 100755 --- a/upgrade/1.0.1/tokenize_job_terms.php +++ b/upgrade/1.0.1/tokenize_job_terms.php @@ -1,7 +1,6 @@ #!/usr/bin/php5 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 index 0000000..0aa2807 --- /dev/null +++ b/upgrade/1.0.1/update.sh @@ -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