Commit 568c060d4a84eb55898d2fbc18a35246f75e4598

Authored by Etienne Pallier
1 parent e0cb3bb8
Exists in master and in 1 other branch dev

Nouveau script database/update/db-update.sh UNIQUE (v3.7.9.71)

pour exécuter un script sql passé en argument
=> remplace tous les scripts database/update/db-update-yyyy-mm-dd.sh
désormais inutiles et à supprimer prochainement
CHANGES.txt
... ... @@ -72,10 +72,12 @@ Outre ces changements, voici d'autres changements importants :
72 72 ======= CHANGES =======
73 73  
74 74 -------
75   -23/07/2020 v3.7.9.69-70 (EP)
  75 +23/07/2020 v3.7.9.69-71 (EP)
76 76 - (b) Bugfix OrganismesController getArticle => public
77 77 - .gitignore modifs : ignorer dossier Eclipse .metadata/...
78   - - nouveau filtre "domaine" pour afficher la liste des matériels par domaine (informatique, électronique, ...)
  78 + - (e) nouveau filtre "domaine" pour afficher la liste des matériels par domaine (informatique, électronique, ...)
  79 + - (i) nouveau script database/update/db-update.sh UNIQUE pour exécuter un script sql passé en argument
  80 + => remplace tous les scripts database/update/db-update-yyyy-mm-dd.sh désormais inutiles et à supprimer prochainement
79 81  
80 82  
81 83 -------
... ...
README.md
... ... @@ -43,7 +43,7 @@ Logiciel testé et validé sur les configurations suivantes :
43 43 --------------------------------------------------------------------------------------------
44 44  
45 45 Date: 23/07/2020
46   -Version: 3.7.9.70
  46 +Version: 3.7.9.71
47 47  
48 48  
49 49 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
database/update/db-update-2020-07-06.sh
1 1 #!/bin/bash
2 2  
  3 +# Récupération du nom de ce script, sans l'extension .sh
3 4 #myname=`basename $0 .sh`
  5 +# db-update-2020-07-06.sh
4 6 myname=`basename $0`
  7 +# db-update-2020-07-06
5 8 myname=${myname%%.*}
6 9  
  10 +
7 11 # Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente
8 12 # Il faut donc exécuter ce script de la manière suivante :
9 13 # ./macos-db-update.sh <ce_script.sh>
... ...
database/update/db-update.sh 0 → 100755
... ... @@ -0,0 +1,83 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc exécuter ce script de la manière suivante :
  5 +# ./macos-db-update.sh <ce_script.sh>
  6 +
  7 +
  8 +if [ ! -f ../../config/app.php ] ; then
  9 + echo "Vous devez executer ce script depuis le dossier database/update/"
  10 + exit 1
  11 +fi
  12 +
  13 +# Ce script attend un argument $1 qui est le nom du script sql à exécuter
  14 +# Exit if no argument
  15 +[[ $1 == '' ]] && exit 1
  16 +sqlscript=$1
  17 +#echo $sqlscript
  18 +
  19 +
  20 +function abort() {
  21 + echo "******************************************************"
  22 + echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!"
  23 + echo "******************************************************"
  24 + exit 1
  25 +}
  26 +
  27 +
  28 +# Exit si ce script n'existe pas
  29 +#if [[ ! -f ./script_sql/$sqlscript ]] ; then
  30 +if [[ ! -f ./$sqlscript ]] ; then
  31 + #echo "Le script SQL script_sql/$sqlscript n'existe pas"
  32 + echo "Le script SQL $sqlscript n'existe pas"
  33 + abort
  34 +fi
  35 +
  36 +
  37 +# Nom du script sql, sans l'extension .sql
  38 +sqlscript_name=${sqlscript%%.*}
  39 +#echo $sqlscript_name
  40 +
  41 +
  42 +
  43 +
  44 +
  45 +
  46 +# Get login, pass, dbname, and hostname
  47 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort
  48 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort
  49 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort
  50 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort
  51 +
  52 +
  53 +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql
  54 +#cp -p ./script_sql/$sqlscript.sql ./script_sql/$sqlscript-build.sql || abort
  55 +#cp -p ./script_sql/$sqlscript_name.sql ./script_sql/$sqlscript_name-build.sql || abort
  56 +cp -p ./$sqlscript_name.sql ./$sqlscript_name-build.sql || abort
  57 +
  58 +# Execute sql update script
  59 +#sed -e "s/database/$database/" -i ./script_sql/$sqlscript-build.sql || abort
  60 +sed -e "s/database/$database/" -i ./$sqlscript_name-build.sql || abort
  61 +
  62 +#mysql --user=$username --password=$password -h $host < ./script_sql/$sqlscript_name-build.sql || abort
  63 +mysql --user=$username --password=$password -h $host < ./$sqlscript_name-build.sql || abort
  64 +
  65 +# Delete temporary file and cakephp cache (-f avoids warning if no file)
  66 +#rm -f ./script_sql/$sqlscript_name-build.sql
  67 +rm -f ./$sqlscript_name-build.sql
  68 +sudo rm -f ../../tmp/cache/models/*
  69 +sudo rm -f ../../tmp/cache/persistent/*
  70 +
  71 +# Faire ca aussi si ca suffit pas...
  72 +#sudo chmod -R 777 ../../tmp
  73 +#sudo chmod -R 777 ../../vendor
  74 +#sudo chmod -R 777 ../../webroot
  75 +
  76 +
  77 +# PLUGIN update
  78 +# Installation plugin cakephp-dompdf
  79 +# (on va a la racine du projet)
  80 +#cd ../../
  81 +#php composer.phar require daoandco/cakephp-dompdf
  82 +#bin/cake plugin assets symlink
  83 +#cd -
... ...
database/update/macos-db-update.sh
1 1 # Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
2 2 # Il faut donc transformer les instructions sed a l'interieur des fichiers bash
3 3  
4   -# USAGE: macos-db-update.sh db-update-xxxx-xx-xx.sh
  4 +# USAGE: macos-db-update.sh db-update.sh db-update-xxxx-xx-xx.sql
  5 +#### old USAGE: macos-db-update.sh db-update-xxxx-xx-xx.sh
5 6  
6 7 cp $1 $1.macos
7 8 chmod +x $1.macos
8 9 sed -e "s/ -i / -i '' /" -i '' $1.macos
9   -./$1.macos
  10 +./$1.macos $2
10 11 rm -rf $1.macos
... ...
install/update.sh
... ... @@ -16,10 +16,12 @@
16 16 # Normal mode
17 17 TEST=0
18 18 # Test mode
19   -#TEST=1
  19 +TEST=1
20 20  
21   -db_update_scripts_folder="../database/update"
22   -db_update_scripts_folder_tmp=/tmp/database_update
  21 +#db_update_scripts_folder="../database/update"
  22 +db_update_scripts_folder="../database/update/script_sql"
  23 +#db_update_scripts_folder_tmp=/tmp/database_update
  24 +db_update_scripts_folder_tmp=/tmp/database_update_script_sql
23 25  
24 26 function abort() {
25 27 echo "******************************************************"
... ... @@ -28,9 +30,6 @@ function abort() {
28 30 exit 1
29 31 }
30 32  
31   -# TEST only
32   -[[ $TEST == 1 ]] && (rm ../database/update/test.txt ; rm ../database/update/db-update-2014-*.sh ; touch ../database/update/db-update-2014-08-23.sh)
33   -#mv ../database/update/db-update-2019-01-12.sh /tmp/
34 33  
35 34  
36 35 # ----------------------------------------
... ... @@ -47,6 +46,11 @@ echo
47 46 echo
48 47  
49 48  
  49 +# TEST only
  50 +#[[ $TEST == 1 ]] && (rm ../database/update/test.txt ; rm ../database/update/db-update-2014-*.sh ; touch ../database/update/db-update-2014-08-23.sh)
  51 +[[ $TEST == 1 ]] && (rm $db_update_scripts_folder/test.txt ; rm $db_update_scripts_folder/db-update-2014-*.sql ; touch $db_update_scripts_folder/db-update-2014-08-23.sql)
  52 +#mv ../database/update/db-update-2019-01-12.sh /tmp/
  53 +
50 54 # ----------------------------------------
51 55 # 0b) Sauvegarde de certains éléments (dans /tmp)
52 56 # (pour voir s'ils vont changer après le "git pull")
... ... @@ -54,16 +58,19 @@ echo
54 58  
55 59 # a) Sauvegarde du fichier composer.json
56 60 cp -fp ../composer.json /tmp/ || abort
57   -[[ $TEST == 1 ]] && cp ../composer.lock /tmp/composer.json
  61 +######[[ $TEST == 1 ]] && cp ../composer.lock /tmp/composer.json
58 62 composer_json_prev=/tmp/composer.json
59 63  
60 64 # b) Sauvegarde du dossier database/update/
  65 +# b) Sauvegarde du dossier database/update/script_sql/
61 66 #db_update_scripts_before=( "key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10" )
62 67 rm -rf $db_update_scripts_folder_tmp/ || abort
63 68 mkdir $db_update_scripts_folder_tmp/ || abort
64   -cp -fp $db_update_scripts_folder/db-update-????-??-??.sh $db_update_scripts_folder_tmp/ || abort
  69 +#cp -fp $db_update_scripts_folder/db-update-????-??-??.sh $db_update_scripts_folder_tmp/ || abort
  70 +cp -fp $db_update_scripts_folder/db-update-????-??-??.sql $db_update_scripts_folder_tmp/ || abort
65 71 cd $db_update_scripts_folder_tmp/ || abort
66   -db_update_scripts_before=$(ls -1 db-update-????-??-??.sh) || abort
  72 +#db_update_scripts_before=$(ls -1 db-update-????-??-??.sh) || abort
  73 +db_update_scripts_before=$(ls -1 db-update-????-??-??.sql) || abort
67 74 cd - >/dev/null || abort
68 75 #echo ; echo ${db_update_scripts_before[@]}
69 76  
... ... @@ -120,6 +127,7 @@ if [ ! -d $plugins_dir ] ; then
120 127 chmod 777 $plugins_dir
121 128 fi
122 129 chmod +x plugins_set.sh
  130 +chmod +x plugins_update.sh
123 131 chmod +x plugins_install.sh
124 132 diff ../composer.json $composer_json_prev >/dev/null
125 133 # Attention, ne pas faire "update" mais "install"
... ... @@ -147,11 +155,13 @@ echo &quot;* 3) Mise à jour de la Base de Données (seulement si nécessaire) :&quot;
147 155 # a) On fait la différence entre les fichiers de mise à jour BD présents après le git et avant
148 156  
149 157 # TEST only
150   -[[ $TEST == 1 ]] && (rm ../database/update/db-update-2014-08-23.sh ; touch ../database/update/test.txt ; touch ../database/update/db-update-2014-08-24.sh ; touch ../database/update/db-update-2014-08-25.sh; chmod +x ../database/update/db-update-2014-*.sh)
  158 +#[[ $TEST == 1 ]] && (rm ../database/update/db-update-2014-08-23.sh ; touch ../database/update/test.txt ; touch ../database/update/db-update-2014-08-24.sh ; touch ../database/update/db-update-2014-08-25.sh; chmod +x ../database/update/db-update-2014-*.sh)
  159 +[[ $TEST == 1 ]] && (rm $db_update_scripts_folder/db-update-2014-08-23.sql ; touch $db_update_scripts_folder/test.txt ; touch $db_update_scripts_folder/db-update-2014-08-24.sql ; touch $db_update_scripts_folder/db-update-2014-08-25.sql)
151 160 #mv /tmp/db-update-2019-01-12.sh ../database/update/
152 161  
153 162 cd $db_update_scripts_folder/ || abort
154   -db_update_scripts_after=$(ls -1 db-update-????-??-??.sh) || abort
  163 +#db_update_scripts_after=$(ls -1 db-update-????-??-??.sh) || abort
  164 +db_update_scripts_after=$(ls -1 db-update-????-??-??.sql) || abort
155 165 cd - >/dev/null || abort
156 166 #echo ; echo ${db_update_scripts_after[@]}
157 167  
... ... @@ -175,22 +185,28 @@ echo &quot;Voici le(s) script(s) à exécuter :&quot;
175 185 echo ${db_update_scripts_new[@]}
176 186 # Remove files that were DELETED by "git pull"
177 187 for db_update_script_new in ${db_update_scripts_new[@]} ; do
178   - [[ ! -f ../database/update/$db_update_script_new ]] && echo "$db_update_script_new sera ignoré car supprimé par le 'git pull'" # TODO: supprimer cet element du tableau
  188 +# [[ ! -f ../database/update/$db_update_script_new ]] && echo "$db_update_script_new sera ignoré car supprimé par le 'git pull'" # TODO: supprimer cet element du tableau
  189 + [[ ! -f ../database/update/script_sql/$db_update_script_new ]] && echo "$db_update_script_new sera ignoré car supprimé par le 'git pull'" # TODO: supprimer cet element du tableau
179 190 done
180   -cd $db_update_scripts_folder/ || abort
  191 +# On va dans le dossier database/update/ :
  192 +#cd $db_update_scripts_folder/ || abort
  193 +cd $db_update_scripts_folder/../ || abort
181 194 for db_update_script_new in ${db_update_scripts_new[@]} ; do
182 195 # Ignorer les fichiers supprimés par le "git pull"
183   - [[ ! -f $db_update_script_new ]] && continue
  196 + #[[ ! -f $db_update_script_new ]] && continue
  197 + [[ ! -f script_sql/$db_update_script_new ]] && continue
184 198 echo ; echo
185 199 #echo "- Execution du script de mise à jour de la BD $db_update_scripts_folder/$db_update_script_new (o/n) ? [o]"
186 200 echo "- Execution du script de mise à jour de la BD $db_update_scripts_folder/$db_update_script_new"
187 201 #read do_it ; [[ -z $do_it ]] && do_it="o" ; echo $do_it
188 202 #if [[ $do_it == "o" ]] ; then
189 203 #ls -l ./$db_update_script_new_ || abort
190   - ./$db_update_script_new || abort
  204 + #./$db_update_script_new || abort
  205 + ./db-update.sh script_sql/$db_update_script_new || abort
191 206 #fi
192 207 done
193   -[[ $TEST == 1 ]] && (rm test.txt ; rm db-update-2014-*.sh)
  208 +#[[ $TEST == 1 ]] && (rm test.txt ; rm db-update-2014-*.sh)
  209 +[[ $TEST == 1 ]] && (rm script_sql/test.txt ; rm script_sql/db-update-2014-*.sql)
194 210 cd - >/dev/null
195 211  
196 212  
... ...
src/Template/Pages/tools.ctp
... ... @@ -56,7 +56,7 @@ echo $this-&gt;Html-&gt;link(&#39;Export de la liste des materiels actifs (format CSV)&#39;, [
56 56 echo '</td></tr>';
57 57  
58 58 echo '<tr><td>';
59   -echo $this->Html->link('Voir les Droits des utilisateurs (ACLs)', [
  59 +echo $this->Html->link('Voir les Autorisations des profils utilisateurs (ACLs)', [
60 60 'controller' => 'pages',
61 61 'action' => 'acls'
62 62 ]);
... ...