12,12 → 12,12 |
# idéalement, ce Makefile devrait permettre une bonne gestion du jeu de dépendances |
# entre les scripts, seulement le lancement d'un script pouvant nécessiter un login/mdp |
# il est difficile de vouloir rester "simple". |
# Ce serait cependant la meilleure manière de procéder, ainsi "maj2" ne serait lancer qu'après |
# le succès de "maj1", celui-ci étant "testé" à l'aide d'un fichier comme .succeed ou .ok, |
# cf: tentative de make check |
# Ce serait cependant la meilleure manière de procéder, ainsi "maj2" ne serait lancé qu'en |
# cas de succès de "maj1", celui-ci pouvant être détecté comme "déjà exécuté" ou non. |
# cf target "maj1" ci-dessous |
|
|
# from: |
# à l'aide de, note certains de ces fichiers n'ont pas cours dans le cadre de la maj1 (juillet/août 2013) |
# echo $(egrep -l 'BASE(SOURCE|EDIT|ANNUAIRE)' *.sql) |
fichiers = cel_references.sql dedup-ordre-201307.sql fix-utilisateur-32.sql maj-cleanup-201307.sql maj-nom-ret.sql maj-referentiel-201307.sql maj-referentiel-und-201307.sql maj-struct-201307.sql redempteur.sql referonosaure.sql .current |
|
32,32 → 32,52 |
# utilisée pour initialiser cel_utilisateurs dans maj-struct-201307.sql |
annuairedb ?= tela_prod_v4 |
|
all: |
|
# génère les fichiers avec les bases de données souhaitées |
compile: reset |
@sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g' \ |
-e 's/`BASEANNUAIRE`/`$(annuairedb)`/g' \ |
-e 's/`BASESOURCE`/`$(sourcedb)`/g' \ |
$(fichiers) |
@echo 'Attention: les changements sappliqueront sur la base:' |
@grep ^BASEEDIT .current|cut -d '`' -f2 |
@echo "utilisez \"make reset\" si ce n'est pas l'opération escomptée" |
@printf "Attention: les changements s'appliqueront sur la base \"%s\"\nLes sources utilisées seront: annuaire=\"%s\" , sources=\"%s\"\n(Ctrl+C pour interrompre, Enter pour continuer)\n" \ |
`grep ^BASEEDIT .current|cut -d '\`' -f2` \ |
`grep ^BASEANNUAIRE .current|cut -d '\`' -f2` \ |
`grep ^BASESOURCE .current|cut -d '\`' -f2` |
@read |
|
reset: |
svn revert $(fichiers) |
@svn revert $(fichiers) &> /dev/null |
|
help: |
@echo "make [alterdb=<tb_cel_test>] [sourcedb=<tb_eflore>] [annuairedb=<tela_prod_v4>]" |
|
maj1: |
@echo 'cat maj-struct-201307.sql maj-cleanup-201307.sql fix-utilisateur-32.sql dedup-ordre-201307.sql|mysql $(alterdb)' |
|
# mise à jour de juillet/août 2013 |
# spécifier dans les targets l'ordre (cf A_LIRE.txt) |
maj1: compile cel_references maj-struct-201307 maj-cleanup-201307 fix-utilisateur-32 dedup-ordre-201307 |
# @echo 'cat cel_references.sql maj-struct-201307.sql maj-cleanup-201307.sql fix-utilisateur-32.sql dedup-ordre-201307.sql|mysql $(alterdb)' |
@echo done |
|
|
|
cel_references: |
@mysqldump -dNq $(alterdb) cel_references 2>/dev/null|grep -q ^CREATE |
#@mysqldump -dNq $(alterdb) cel_references 2>/dev/null|grep -q ^CREATE || mysql < cel_references.sql |
@mysql -N $(alterdb) <<<"DESC cel_references" 2>/dev/null|grep -q referentiel || mysql < cel_references.sql |
|
maj-struct-201307: |
@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || mysql < maj-struct-201307.sql |
|
maj-cleanup-201307: |
@ ! mysql -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE date_observation = '0000-00-00 00:00:00' LIMIT 1"|grep -q 1 || mysql < maj-cleanup-201307.sql |
|
fix-utilisateur-32: |
@mysql -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || mysql < fix-utilisateur-32.sql |
|
dedup-ordre-201307: |
@mysql -N $(alterdb)<<<"SELECT distinct ce_utilisateur FROM `cel_obs` GROUP BY ce_utilisateur, ordre HAVING COUNT(*) > 1;"|grep -q . |
fix-utilisateur-32: |
@mysql -N $(alterdb)<<<"DESC cel_obs ce_utilisateur"|grep -q 255 |
maj-cleanup-201307: |
@ ! mysql -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE date_observation = '0000-00-00 00:00:00' LIMIT 1"|grep -q 1 |
#@mysql -N $(alterdb) <<<'SELECT distinct ce_utilisateur FROM `cel_obs` GROUP BY ce_utilisateur, ordre HAVING COUNT(*) > 1'|grep -q . || mysql < dedup-ordre-201307.sql |
@mysql -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || mysql < dedup-ordre-201307.sql |
|
|
# pour une prochaine maj |
maj-nom-ret: |
mysql -N<<<'SELECT count(1) FROM `$(alterdb)`.`cel_obs` c LEFT JOIN `$(sourcedb)`.`bdtfx_v1_01` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0 AND c.nom_ret != "" AND id_observation NOT IN ( SELECT id_observation FROM `$(alterdb)`.`cel_obs` c, `$(sourcedb)`.`bdtfx_v1_01` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 );'|grep -q 0 |
@mysql -N <<<'SELECT count(1) FROM `$(alterdb)`.`cel_obs` c LEFT JOIN `$(sourcedb)`.`bdtfx_v1_01` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0 AND c.nom_ret != "" AND id_observation NOT IN ( SELECT id_observation FROM `$(alterdb)`.`cel_obs` c, `$(sourcedb)`.`bdtfx_v1_01` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 );'|grep -q 0 |