Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 884 → Rev 885

/trunk/scripts/modules/cel/Makefile
42,6 → 42,18
bdtxa_table = bdtxa_v$(bdtxa)
isfan_table = isfan_v$(isfan)
 
# TODO: simply override bdd_user
ifdef bdd_user
bdd_user_h = -u$(bdd_user)
endif
 
ifneq ($(origin bdd_pass), undefined)
bdd_pass_h = "-p$(bdd_pass)"
endif
 
mysqlbin ?= mysql
mysqlcmd = $(mysqlbin) $(bdd_user_h) $(bdd_pass_h)
 
# macro utilisable pour les targets nécessitant de tester la présence d'un couple (base,table)
# exemples:
# * $(call is_table,tb_eflore,bdtfx_v1_01)
48,7 → 60,7
# * $(call is_table,$(annuairedb),annuaire_tela)
# argument 1: base de données
# argument 2: table
is_table = @mysql -N $(1) <<<"DESC $(2)" &> /dev/null
is_table = $(mysqlcmd) -N $(1) <<<"DESC $(2)" &> /dev/null
 
# macro utilisable pour effectuer des substitutions:
do_subst = sed -e "1i--\n-- fichier d'origine: \"${1}\"\n" \
63,9 → 75,14
-e 's/TABLEISFAN/`$(isfan_table)`/g' \
$(1)
 
# default target
help:
@echo "make [alterdb=<$(alterdb)>] [sourcedb=<$(sourcedb)>] [annuairedb=<$(annuairedb)>] [bdtfx=<$(bdtfx)>] [bdtxa=<$(bdtxa)>] [isfan=$(isfan)] [bdd_user=\"\"] [bdd_pass=\"\"] [mysqlbin=mysql]"
@echo "make o_maj1 mysqlbin=/usr/local/mysql/bin/mysql bdd_user=telabotap bdd_pass=XXX"
 
# génère les fichiers avec les bases de données souhaitées
compile: reset
@sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g' \
sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g' \
-e 's/`BASEANNUAIRE`/`$(annuairedb)`/g' \
-e 's/`BASESOURCE`/`$(sourcedb)`/g' \
-e 's/TABLEBDTFX/`$(bdtfx_table)`/g' \
72,7 → 89,7
-e 's/TABLEBDTXA/`$(bdtxa_table)`/g' \
-e 's/`TABLEISFAN`/`$(isfan_table)`/g' \
$(fichiers)
@printf "Attention: les changements s'appliqueront sur la base \"%s\"\nLes sources utilisées seront: annuaire=\"%s\" , sources=\"%s\" (%s,%s,%s)\n(Ctrl+C pour interrompre, Enter pour continuer)\n" \
printf "Attention: les changements s'appliqueront sur la base \"%s\"\nLes sources utilisées seront: annuaire=\"%s\" , sources=\"%s\" (%s,%s,%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` \
79,7 → 96,7
`grep ^TABLE_BDTFX .current|cut -d '=' -f2` \
`grep ^TABLE_BDTXA .current|cut -d '=' -f2` \
`grep ^TABLE_ISFAN .current|cut -d '=' -f2`
@read
read
 
reset:
svn revert -q $(fichiers)
88,10 → 105,6
clean:
rm -f *.comp.sql
 
help:
@echo "make [alterdb=<tb_cel_test>] [sourcedb=<tb_eflore>] [annuairedb=<tela_prod_v4>] [bdtfx=<1_01>] [bdtxa=<1_00>]"
 
 
### mises à jour
 
# mise à jour de septembre 2013
99,12 → 112,12
# attention, si un prérequis ne génère pas de SQL, cela n'empêchera pas le fichier
# final de maj d'être généré (bien,
maj1: compile cel_references maj-struct-201307 maj-cleanup-201307 fix-utilisateur-32 dedup-ordre-201307 maj-referentiel-201307
@echo done
echo done
 
o_maj1: fichiers_generes = $(addsuffix .comp.sql,$(filter-out clean,$?))
o_maj1: clean o_cel_references o_maj-struct-201307 o_maj-cleanup-201307 o_fix-utilisateur-32 o_dedup-ordre-201307 o_maj-referentiel-201307 o_referonosaure
cat $(fichiers_generes) > maj1.comp.sql
@echo done
echo done
 
### fin: mises à jour
 
128,7 → 141,7
$(call is_table,$(sourcedb),$(bdtfx_table))
$(call is_table,$(sourcedb),nvjfl_v2007)
$(call is_table,$(sourcedb),nva_index_v2_03)
$(call is_table,$(alterdb),cel_references) || mysql < cel_references.sql
$(call is_table,$(alterdb),cel_references) || $(mysqlcmd) < cel_references.sql
o_cel_references:
$(call is_table,$(sourcedb),$(bdtfx_table))
$(call is_table,$(sourcedb),nvjfl_v2007)
137,26 → 150,28
 
maj-struct-201307: check_cel_obs
$(call is_table,$(annuairedb),annuaire_tela)
@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || mysql < maj-struct-201307.sql
$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(mysqlcmd) < maj-struct-201307.sql
o_maj-struct-201307: check_cel_obs
$(call is_table,$(annuairedb),annuaire_tela)
@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(call do_subst,maj-struct-201307.sql) > $@.comp.sql
$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(call do_subst,maj-struct-201307.sql) > $@.comp.sql
 
maj-cleanup-201307: check_cel_obs
@ ! mysql -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE nom_ret = 'null' LIMIT 1"|grep -q 1 || mysql < maj-cleanup-201307.sql
! $(mysqlcmd) -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE nom_ret = 'null' LIMIT 1"|grep -q 1 || $(mysqlcmd) < maj-cleanup-201307.sql
o_maj-cleanup-201307:
@ ! mysql -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE nom_ret = 'null' LIMIT 1"|grep -q 1 || $(call do_subst,maj-cleanup-201307.sql) > $@.comp.sql
# tb_cel_test clean
# ! $(mysqlcmd) -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE nom_ret = 'null' LIMIT 1"|grep -q 1 || $(call do_subst,maj-cleanup-201307.sql) > $@.comp.sql
$(call do_subst,maj-cleanup-201307.sql) > $@.comp.sql
 
fix-utilisateur-32: check_cel_obs
@mysql -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || mysql < fix-utilisateur-32.sql
$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || $(mysqlcmd) < fix-utilisateur-32.sql
o_fix-utilisateur-32: check_cel_obs
@mysql -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || $(call do_subst,fix-utilisateur-32.sql) > $@.comp.sql
$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || $(call do_subst,fix-utilisateur-32.sql) > $@.comp.sql
 
dedup-ordre-201307: check_cel_obs
#@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
#$(mysqlcmd) -N $(alterdb) <<<'SELECT distinct ce_utilisateur FROM `cel_obs` GROUP BY ce_utilisateur, ordre HAVING COUNT(*) > 1'|grep -q . || $(mysqlcmd) < dedup-ordre-201307.sql
$(mysqlcmd) -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || $(mysqlcmd) < dedup-ordre-201307.sql
o_dedup-ordre-201307: check_cel_obs
@mysql -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || $(call do_subst,dedup-ordre-201307.sql) > $@.comp.sql
$(mysqlcmd) -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || $(call do_subst,dedup-ordre-201307.sql) > $@.comp.sql
 
# maj-referentiel-201307.sql: # pas de test aisé et rapide
# doit passer APRÈS o_maj-cleanup-201307 (pas de nom_ret_nn = 0)
172,6 → 187,6
 
# pour une prochaine maj
maj-nom-ret:
@mysql -N <<<'SELECT count(1) FROM `$(alterdb)`.`cel_obs` c LEFT JOIN `$(sourcedb)`.`$(bdtfx_table)` 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_table)` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 );'|grep -q 0
$(mysqlcmd) -N <<<'SELECT count(1) FROM `$(alterdb)`.`cel_obs` c LEFT JOIN `$(sourcedb)`.`$(bdtfx_table)` 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_table)` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 );'|grep -q 0
o_maj-nom-ret:
$(call do_subst,maj-nom-ret.sql) > $@.comp.sql