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:
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;
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;
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;
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;
--- /dev/null
+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:
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:
#!/usr/bin/php5
<?php
require_once 'connect.db.inc.php';
-require_once 'class/jobterms.php';
$globals->debug = 0; //do not store backtraces
--- /dev/null
+#!/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