| Line 25... |
Line 25... |
| 25 |
.current
|
25 |
.current
|
| Line 26... |
Line 26... |
| 26 |
|
26 |
|
| 27 |
# la base de données à modifier
|
27 |
# la base de données à modifier
|
| Line 28... |
Line 28... |
| 28 |
alterdb ?= tb_cel_test
|
28 |
alterdb ?= tb_cel_test
|
| 29 |
|
29 |
|
| 30 |
# pour bdtfxa, bdtxa, isfan, nvjfl, nva, baseflor, ... lecture seule;
|
30 |
# pour bdtfx, bdtxa, isfan, nvjfl, nva, baseflor, ... lecture seule;
|
| Line 31... |
Line 31... |
| 31 |
# utilisée pour actualiser les enregistrements de cel_obs dans referonosaure.sql
|
31 |
# utilisée pour actualiser les enregistrements de cel_obs dans referonosaure.sql
|
| 32 |
sourcedb ?= tb_eflore
|
32 |
sourcedb ?= tb_eflore
|
| 33 |
|
33 |
|
| Line 34... |
Line 34... |
| 34 |
# pour annuaire_tela, lecture seule;
|
34 |
# pour annuaire_tela, lecture seule;
|
| 35 |
# utilisée pour initialiser cel_utilisateurs dans maj-struct-201307.sql
|
35 |
# utilisée pour initialiser cel_utilisateurs dans maj-struct-201307.sql
|
| 36 |
annuairedb ?= tela_prod_v4
|
36 |
annuairedb ?= tela_prod_v4
|
| 37 |
|
37 |
|
| Line 38... |
Line 38... |
| 38 |
bdtfx ?= 1_01
|
38 |
bdtfx ?= 1_01
|
| 39 |
bdtxa ?= 1_00
|
39 |
bdtxa ?= 1_00
|
| 40 |
bdtfx_table = bdtfx_v$(bdtfx)
|
40 |
bdtfx_table = bdtfx_v$(bdtfx)
|
| 41 |
bdtxa_table = bdtfx_v$(bdtxa)
|
41 |
bdtxa_table = bdtxa_v$(bdtxa)
|
| 42 |
|
42 |
|
| 43 |
# macro utilisable pour les targets nécessitant de tester la présence d'un couple (base,table)
|
43 |
# macro utilisable pour les targets nécessitant de tester la présence d'un couple (base,table)
|
| 44 |
# exemples:
|
44 |
# exemples:
|
| Line -... |
Line 45... |
| - |
|
45 |
# * $(call is_table,tb_eflore,bdtfx_v1_01)
|
| - |
|
46 |
# * $(call is_table,$(annuairedb),annuaire_tela)
|
| - |
|
47 |
# argument 1: base de données
|
| - |
|
48 |
# argument 2: table
|
| - |
|
49 |
is_table = @mysql -N $(1) <<<"DESC $(2)" &> /dev/null
|
| - |
|
50 |
|
| - |
|
51 |
# macro utilisable pour effectuer des substitutions:
|
| Line 45... |
Line 52... |
| 45 |
# * $(call is_table,tb_eflore,bdtfx_v1_01)
|
52 |
do_subst = sed -e 's/`BASEEDIT`/`$(alterdb)`/g' \
|
| 46 |
# * $(call is_table,$(annuairedb),annuaire_tela)
|
53 |
-e 's/`BASEANNUAIRE`/`$(annuairedb)`/g' \
|
| 47 |
# argument 1: base de données
|
54 |
-e 's/`BASESOURCE`/`$(sourcedb)`/g' \
|
| 48 |
# argument 2: table
|
55 |
-e 's/TABLEBDTFX/`$(bdtfx_table)`/g' \
|
| 49 |
is_table = @$(shell mysql -N $(1) <<<"DESC $(2)" &> /dev/null && echo true || echo false)
|
56 |
-e 's/TABLEBDTXA/`$(bdtxa_table)`/g' \
|
| 50 |
|
57 |
$(1)
|
| 51 |
|
58 |
|
| 52 |
# génère les fichiers avec les bases de données souhaitées
|
59 |
# génère les fichiers avec les bases de données souhaitées
|
| 53 |
compile: reset
|
60 |
compile: reset
|
| 54 |
@sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g' \
|
61 |
@sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g' \
|
| 55 |
-e 's/`BASEANNUAIRE`/`$(annuairedb)`/g' \
|
62 |
-e 's/`BASEANNUAIRE`/`$(annuairedb)`/g' \
|
| 56 |
-e 's/`BASESOURCE`/`$(sourcedb)`/g' \
|
63 |
-e 's/`BASESOURCE`/`$(sourcedb)`/g' \
|
| 57 |
-e 's/`TABLEBDTFX`/`$(bdtfx_table)`/g' \
|
64 |
-e 's/TABLEBDTFX/`$(bdtfx_table)`/g' \
|
| 58 |
-e 's/`TABLEBDTXA`/`$(bdtxa_table)`/g' \
|
65 |
-e 's/TABLEBDTXA/`$(bdtxa_table)`/g' \
|
| 59 |
$(fichiers)
|
66 |
$(fichiers)
|
| Line 60... |
Line 67... |
| 60 |
@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" \
|
67 |
@printf "Attention: les changements s'appliqueront sur la base \"%s\"\nLes sources utilisées seront: annuaire=\"%s\" , sources=\"%s\" (%s,%s)\n(Ctrl+C pour interrompre, Enter pour continuer)\n" \
|
| 61 |
`grep ^BASEEDIT .current|cut -d '\`' -f2` \
|
68 |
`grep ^BASEEDIT .current|cut -d '\`' -f2` \
|
| Line -... |
Line 69... |
| - |
|
69 |
`grep ^BASEANNUAIRE .current|cut -d '\`' -f2` \
|
| - |
|
70 |
`grep ^BASESOURCE .current|cut -d '\`' -f2` \
|
| - |
|
71 |
`grep ^TABLE_BDTFX .current|cut -d '=' -f2` \
|
| Line 62... |
Line 72... |
| 62 |
`grep ^BASEANNUAIRE .current|cut -d '\`' -f2` \
|
72 |
`grep ^TABLE_BDTXA .current|cut -d '=' -f2`
|
| 63 |
`grep ^BASESOURCE .current|cut -d '\`' -f2` \
|
73 |
@read
|
| Line -... |
Line 74... |
| - |
|
74 |
|
| - |
|
75 |
reset:
|
| 64 |
`grep ^TABLE_BDTFX .current|cut -d '=' -f2` \
|
76 |
svn revert -q $(fichiers)
|
| 65 |
`grep ^TABLE_BDTXA .current|cut -d '=' -f2`
|
77 |
|
| - |
|
78 |
# supprime les fichiers "compilés" (concaténation de plusieurs scripts SQL substitués)
|
| - |
|
79 |
clean:
|
| 66 |
@read
|
80 |
rm -f *.comp.sql
|
| 67 |
|
- |
|
| 68 |
reset:
|
81 |
|
| Line -... |
Line 82... |
| - |
|
82 |
help:
|
| - |
|
83 |
@echo "make [alterdb=<tb_cel_test>] [sourcedb=<tb_eflore>] [annuairedb=<tela_prod_v4>] [bdtfx=<1_01>] [bdtxa=<1_00>]"
|
| - |
|
84 |
|
| - |
|
85 |
|
| - |
|
86 |
### mises à jour
|
| - |
|
87 |
|
| - |
|
88 |
# mise à jour de juillet/août 2013
|
| - |
|
89 |
# spécifier dans les targets l'ordre (cf A_LIRE.txt)
|
| - |
|
90 |
# attention, si un prérequis ne génère pas de SQL, cela n'empêchera pas le fichier
|
| Line -... |
Line 91... |
| - |
|
91 |
# final de maj d'être généré (bien,
|
| - |
|
92 |
maj1: compile cel_references maj-struct-201307 maj-cleanup-201307 fix-utilisateur-32 dedup-ordre-201307
|
| Line -... |
Line 93... |
| - |
|
93 |
@echo done
|
| - |
|
94 |
|
| - |
|
95 |
o_maj1: fichiers_generes = $(addsuffix .comp.sql,$(filter-out clean,$?))
|
| - |
|
96 |
o_maj1: clean o_cel_references o_maj-struct-201307 o_maj-cleanup-201307 o_fix-utilisateur-32 o_dedup-ordre-201307
|
| - |
|
97 |
cat $(fichiers_generes) > maj1.comp.sql
|
| - |
|
98 |
@echo done
|
| - |
|
99 |
|
| - |
|
100 |
### fin: mises à jour
|
| - |
|
101 |
|
| - |
|
102 |
|
| 69 |
@svn revert $(fichiers) &> /dev/null
|
103 |
### tools
|
| 70 |
|
104 |
|
| 71 |
|
105 |
check_cel_obs:
|
| - |
|
106 |
$(call is_table,$(alterdb),cel_obs)
|
| - |
|
107 |
|
| - |
|
108 |
### fin: tools
|
| Line 72... |
Line 109... |
| 72 |
help:
|
109 |
|
| 73 |
@echo "make [alterdb=<tb_cel_test>] [sourcedb=<tb_eflore>] [annuairedb=<tela_prod_v4>] [bdtfx=<1_01>] [bdtxa=<1_00>]"
|
110 |
|
| 74 |
|
111 |
### mises à jour individuelles (scripts)
|
| - |
|
112 |
### pour chacun d'entre-eux, deux versions existent,
|
| - |
|
113 |
### 1) L'un compile (après substitution des noms dans le fichier SQL original)
|
| - |
|
114 |
### et pipe vers mysql directement, ce qui suppose aussi un .my.cnf ou autre
|
| Line 75... |
Line 115... |
| 75 |
|
115 |
### 2) L'autre (préfixé par o_), renvoie le fichier substitué en sortie standard
|
| 76 |
# mise à jour de juillet/août 2013
|
116 |
### et le target principal s'occupe de concaténer et de créer un fichier de destination
|
| - |
|
117 |
### Cette méthode est de loin préférable
|
| - |
|
118 |
cel_references:
|
| Line 77... |
Line 119... |
| 77 |
# spécifier dans les targets l'ordre (cf A_LIRE.txt)
|
119 |
$(call is_table,$(sourcedb),$(bdtfx_table))
|
| 78 |
maj1: compile cel_references maj-struct-201307 maj-cleanup-201307 fix-utilisateur-32 dedup-ordre-201307
|
120 |
$(call is_table,$(alterdb),cel_references) || mysql < cel_references.sql
|
| - |
|
121 |
o_cel_references:
|
| - |
|
122 |
$(call is_table,$(sourcedb),$(bdtfx_table))
|
| Line 79... |
Line 123... |
| 79 |
# @echo 'cat cel_references.sql maj-struct-201307.sql maj-cleanup-201307.sql fix-utilisateur-32.sql dedup-ordre-201307.sql|mysql $(alterdb)'
|
123 |
$(call is_table,$(alterdb),cel_references) || $(call do_subst,cel_references.sql) > $@.comp.sql
|
| 80 |
@echo done
|
124 |
|
| 81 |
|
125 |
maj-struct-201307: check_cel_obs
|
| - |
|
126 |
$(call is_table,$(annuairedb),annuaire_tela)
|
| - |
|
127 |
@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || mysql < maj-struct-201307.sql
|
| - |
|
128 |
o_maj-struct-201307: check_cel_obs
|
| - |
|
129 |
$(call is_table,$(annuairedb),annuaire_tela)
|
| Line 82... |
Line 130... |
| 82 |
|
130 |
@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(call do_subst,maj-struct-201307.sql) > $@.comp.sql
|
| 83 |
|
131 |
|
| 84 |
cel_references:
|
132 |
maj-cleanup-201307: check_cel_obs
|