Ajout d'un champ à la fiche chercheur.
[auf_savoirs_en_partage_django.git] / auf_savoirs_en_partage / sql / 2010-11-26.sql
CommitLineData
595ab4d6
EMS
1-- Le chercheur n'a pas besoin d'une colonne "actif". C'est la "personne" qui a
2-- le champ "actif".
3
8baa2a56 4ALTER TABLE chercheurs_chercheur DROP COLUMN actif;
595ab4d6
EMS
5
6-- On déplace les thèses dans leur propre table pour les isoler des
7-- publications.
8
9CREATE TABLE `chercheurs_these` (
10 `chercheur_id` integer NOT NULL PRIMARY KEY,
11 `titre` varchar(255) NOT NULL,
12 `annee` integer NOT NULL,
13 `directeur` varchar(255) NOT NULL,
14 `etablissement` varchar(255) NOT NULL,
15 `nb_pages` integer,
16 `url` varchar(255) NOT NULL
17)
18;
19ALTER TABLE `chercheurs_these` ADD CONSTRAINT `chercheur_id_refs_id_727f1a45` FOREIGN KEY (`chercheur_id`) REFERENCES `chercheurs_chercheur` (`id`);
20
21INSERT INTO chercheurs_these (chercheur_id, titre, annee, directeur, etablissement, nb_pages, url)
22SELECT c.id, p.titre, p.annee, p.editeur, p.lieu_edition, NULLIF(p.nb_pages, ''), p.url
23FROM chercheurs_publication p
24INNER JOIN chercheurs_chercheur c ON c.these = p.id;
25
26DELETE p FROM chercheurs_publication p
27INNER JOIN chercheurs_chercheur c ON c.these = p.id;
28
29ALTER TABLE chercheurs_chercheur DROP COLUMN these;
30
31-- Les publications auront maintenant une foreign key vers les chercheurs
32-- plutôt que le contraire.
33
34ALTER TABLE chercheurs_publication ADD COLUMN `chercheur_id` integer NOT NULL AFTER id;
35ALTER TABLE `chercheurs_publication` ADD CONSTRAINT `chercheur_id_refs_id_4bd3fee4` FOREIGN KEY (`chercheur_id`) REFERENCES `chercheurs_chercheur` (`id`);
36
37UPDATE chercheurs_publication p
38INNER JOIN chercheurs_chercheur c ON p.id IN (c.publication1, c.publication2, c.publication3, c.publication4)
39SET p.chercheur_id = c.id;
40
41ALTER TABLE chercheurs_chercheur
42 DROP COLUMN publication1,
43 DROP COLUMN publication2,
44 DROP COLUMN publication3,
45 DROP COLUMN publication4;
46
47-- On ne peut pas à la fois forcer une clé unique sur le courriel et conserver
48-- les comptes inactifs dans la table.
49
50ALTER TABLE chercheurs_personne
51 DROP KEY courriel,
52 ADD KEY courriel (courriel);
7020ea3d
EMS
53
54-- Certains chercheurs ont un nom qui commence par un espace
55
56UPDATE chercheurs_personne SET nom = TRIM(nom), prenom = TRIM(prenom);
57UPDATE chercheurs_chercheur SET etablissement_autre_nom = TRIM(etablissement_autre_nom);
58UPDATE chercheurs_chercheur SET diplome = '' WHERE diplome = '.';
59UPDATE chercheurs_chercheur SET etablissement_autre_nom = '' WHERE etablissement_autre_nom = '.';
60UPDATE chercheurs_chercheur SET theme_recherche = '' WHERE theme_recherche = '.';
1df3737b 61
cb591fb3
EMS
62-- Nouveaux champs
63
1df3737b 64ALTER TABLE `chercheurs_publication` ADD COLUMN `auteurs` varchar(255) NOT NULL AFTER id;
cb591fb3 65ALTER TABLE `chercheurs_chercheur` ADD COLUMN `expertises_auf` bool NOT NULL;