diff --git a/database/update/db-update-2020-06-10.sh b/database/update/db-update-2020-06-10.sh new file mode 100755 index 0000000..0a806d5 --- /dev/null +++ b/database/update/db-update-2020-06-10.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +#myname=`basename $0 .sh` +myname=`basename $0` +myname=${myname%%.*} + +# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente +# Il faut donc exécuter ce script de la manière suivante : +# ./macos-db-update.sh + + +function abort() { + echo "******************************************************" + echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!" + echo "******************************************************" + exit 1 +} + + +if [ ! -f ../../config/app.php ] ; then +echo "Vous devez executer ce script depuis le dossier database/update/" +exit 1 +fi + + +# Get login, pass, dbname, and hostname +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort + + +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql || abort + +# Execute sql update script +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql || abort +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql || abort + +# Delete temporary file and cakephp cache (-f avoids warning if no file) +rm -f ./script_sql/$myname-build.sql +sudo rm -f ../../tmp/cache/models/* +sudo rm -f ../../tmp/cache/persistent/* + +# Faire ca aussi si ca suffit pas... +#sudo chmod -R 777 ../../tmp +#sudo chmod -R 777 ../../vendor +#sudo chmod -R 777 ../../webroot + + +# PLUGIN update +# Installation plugin cakephp-dompdf +# (on va a la racine du projet) +#cd ../../ +#php composer.phar require daoandco/cakephp-dompdf +#bin/cake plugin assets symlink +#cd - diff --git a/database/update/script_sql/db-update-2020-06-10.sql b/database/update/script_sql/db-update-2020-06-10.sql new file mode 100755 index 0000000..9a5b50f --- /dev/null +++ b/database/update/script_sql/db-update-2020-06-10.sql @@ -0,0 +1,43 @@ +use database; + +-- On execute TOUT ou RIEN, c'est plus simple +START TRANSACTION; + + +-- Table type_suivis +-- 6/4/20 : ajout champ “is_regular” dans table type_suivis +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`; +-- 8/4/20 : ajout champ “is_metro” dans table type_suivis +ALTER TABLE type_suivis ADD is_metro BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'type de suivi lié au module métrologie' AFTER is_regular; +update materiels set groupes_thematique_id=null WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A'); + + +-- 4/5/20 : suppression du champ “N/A” de groupes_thematiques et groupes_metiers (inutile et pose difficultés) +-- et remplacement des liens vers ce champ dans table materiels par NULL +-- a) update materiels.group = null +update materiels set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A'); +update materiels set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A'); +-- b) update suivis.group = null +update suivis set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A'); +update suivis set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A'); +-- c) delete groupes 'N/A' +delete FROM groupes_metiers WHERE nom = 'N/A'; +delete FROM groupes_thematiques WHERE nom = 'N/A'; + + +-- 5/5/20 : suppression du champ “N/A” des tables sites et type_documents (inutile et pose difficultés) +-- et remplacement des liens vers ces champ par NULL dans tables materiels, emprunts et documents +-- //select designation,site_id from materiels WHERE site_id = (select id from sites where nom='N/A'); +update materiels set site_id=NULL WHERE site_id = (select id from sites where nom='N/A'); +update emprunts set site_id=NULL WHERE site_id = (select id from sites where nom='N/A'); +update documents set type_document_id=NULL WHERE type_document_id = (select id from type_documents where nom='N/A'); +delete FROM type_documents WHERE nom = 'N/A'; +delete FROM sites WHERE nom = 'N/A'; + + +-- 5/6/20 : renommé champ fk groupe_thematique_id de la table users en groupes_thematique_id +-- pour s’harmoniser avec les noms dans les autres tables +ALTER TABLE `users` CHANGE `groupe_thematique_id` `groupes_thematique_id` INT(11) NULL DEFAULT NULL; + + +COMMIT; -- libgit2 0.21.2