Commit c43fc791879888a8458715e41c0c53b8e0093f11
1 parent
5d172735
Exists in
master
and in
1 other branch
modif BD
Showing
2 changed files
with
100 additions
and
0 deletions
Show diff stats
@@ -0,0 +1,57 @@ | @@ -0,0 +1,57 @@ | ||
1 | +#!/bin/bash | ||
2 | + | ||
3 | +#myname=`basename $0 .sh` | ||
4 | +myname=`basename $0` | ||
5 | +myname=${myname%%.*} | ||
6 | + | ||
7 | +# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente | ||
8 | +# Il faut donc exécuter ce script de la manière suivante : | ||
9 | +# ./macos-db-update.sh <ce_script.sh> | ||
10 | + | ||
11 | + | ||
12 | +function abort() { | ||
13 | + echo "******************************************************" | ||
14 | + echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!" | ||
15 | + echo "******************************************************" | ||
16 | + exit 1 | ||
17 | +} | ||
18 | + | ||
19 | + | ||
20 | +if [ ! -f ../../config/app.php ] ; then | ||
21 | +echo "Vous devez executer ce script depuis le dossier database/update/" | ||
22 | +exit 1 | ||
23 | +fi | ||
24 | + | ||
25 | + | ||
26 | +# Get login, pass, dbname, and hostname | ||
27 | +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort | ||
28 | +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort | ||
29 | +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort | ||
30 | +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort | ||
31 | + | ||
32 | + | ||
33 | +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql | ||
34 | +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql || abort | ||
35 | + | ||
36 | +# Execute sql update script | ||
37 | +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql || abort | ||
38 | +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql || abort | ||
39 | + | ||
40 | +# Delete temporary file and cakephp cache (-f avoids warning if no file) | ||
41 | +rm -f ./script_sql/$myname-build.sql | ||
42 | +sudo rm -f ../../tmp/cache/models/* | ||
43 | +sudo rm -f ../../tmp/cache/persistent/* | ||
44 | + | ||
45 | +# Faire ca aussi si ca suffit pas... | ||
46 | +#sudo chmod -R 777 ../../tmp | ||
47 | +#sudo chmod -R 777 ../../vendor | ||
48 | +#sudo chmod -R 777 ../../webroot | ||
49 | + | ||
50 | + | ||
51 | +# PLUGIN update | ||
52 | +# Installation plugin cakephp-dompdf | ||
53 | +# (on va a la racine du projet) | ||
54 | +#cd ../../ | ||
55 | +#php composer.phar require daoandco/cakephp-dompdf | ||
56 | +#bin/cake plugin assets symlink | ||
57 | +#cd - |
@@ -0,0 +1,43 @@ | @@ -0,0 +1,43 @@ | ||
1 | +use database; | ||
2 | + | ||
3 | +-- On execute TOUT ou RIEN, c'est plus simple | ||
4 | +START TRANSACTION; | ||
5 | + | ||
6 | + | ||
7 | +-- Table type_suivis | ||
8 | +-- 6/4/20 : ajout champ “is_regular” dans table type_suivis | ||
9 | +ALTER TABLE `type_suivis` ADD `is_regular` BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'suivi de type régulier (avec fréquence et non pas date)' AFTER `nom`; | ||
10 | +-- 8/4/20 : ajout champ “is_metro” dans table type_suivis | ||
11 | +ALTER TABLE type_suivis ADD is_metro BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'type de suivi lié au module métrologie' AFTER is_regular; | ||
12 | +update materiels set groupes_thematique_id=null WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A'); | ||
13 | + | ||
14 | + | ||
15 | +-- 4/5/20 : suppression du champ “N/A” de groupes_thematiques et groupes_metiers (inutile et pose difficultés) | ||
16 | +-- et remplacement des liens vers ce champ dans table materiels par NULL | ||
17 | +-- a) update materiels.group = null | ||
18 | +update materiels set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A'); | ||
19 | +update materiels set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A'); | ||
20 | +-- b) update suivis.group = null | ||
21 | +update suivis set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A'); | ||
22 | +update suivis set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A'); | ||
23 | +-- c) delete groupes 'N/A' | ||
24 | +delete FROM groupes_metiers WHERE nom = 'N/A'; | ||
25 | +delete FROM groupes_thematiques WHERE nom = 'N/A'; | ||
26 | + | ||
27 | + | ||
28 | +-- 5/5/20 : suppression du champ “N/A” des tables sites et type_documents (inutile et pose difficultés) | ||
29 | +-- et remplacement des liens vers ces champ par NULL dans tables materiels, emprunts et documents | ||
30 | +-- //select designation,site_id from materiels WHERE site_id = (select id from sites where nom='N/A'); | ||
31 | +update materiels set site_id=NULL WHERE site_id = (select id from sites where nom='N/A'); | ||
32 | +update emprunts set site_id=NULL WHERE site_id = (select id from sites where nom='N/A'); | ||
33 | +update documents set type_document_id=NULL WHERE type_document_id = (select id from type_documents where nom='N/A'); | ||
34 | +delete FROM type_documents WHERE nom = 'N/A'; | ||
35 | +delete FROM sites WHERE nom = 'N/A'; | ||
36 | + | ||
37 | + | ||
38 | +-- 5/6/20 : renommé champ fk groupe_thematique_id de la table users en groupes_thematique_id | ||
39 | +-- pour s’harmoniser avec les noms dans les autres tables | ||
40 | +ALTER TABLE `users` CHANGE `groupe_thematique_id` `groupes_thematique_id` INT(11) NULL DEFAULT NULL; | ||
41 | + | ||
42 | + | ||
43 | +COMMIT; |