Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 882 | Rev 892 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 882 Rev 885
Line 40... Line 40...
40
isfan ?= 2013
40
isfan ?= 2013
41
bdtfx_table = bdtfx_v$(bdtfx)
41
bdtfx_table = bdtfx_v$(bdtfx)
42
bdtxa_table = bdtxa_v$(bdtxa)
42
bdtxa_table = bdtxa_v$(bdtxa)
43
isfan_table = isfan_v$(isfan)
43
isfan_table = isfan_v$(isfan)
Line -... Line 44...
-
 
44
 
-
 
45
# TODO: simply override bdd_user
-
 
46
ifdef bdd_user
-
 
47
	bdd_user_h = -u$(bdd_user)
-
 
48
endif
-
 
49
 
-
 
50
ifneq ($(origin bdd_pass), undefined)
-
 
51
	bdd_pass_h = "-p$(bdd_pass)"
-
 
52
endif
-
 
53
 
-
 
54
mysqlbin ?= mysql
-
 
55
mysqlcmd = $(mysqlbin) $(bdd_user_h) $(bdd_pass_h)
44
 
56
 
45
# macro utilisable pour les targets nécessitant de tester la présence d'un couple (base,table)
57
# macro utilisable pour les targets nécessitant de tester la présence d'un couple (base,table)
46
# exemples:
58
# exemples:
47
# * $(call is_table,tb_eflore,bdtfx_v1_01)
59
# * $(call is_table,tb_eflore,bdtfx_v1_01)
48
# * $(call is_table,$(annuairedb),annuaire_tela)
60
# * $(call is_table,$(annuairedb),annuaire_tela)
49
# argument 1: base de données
61
# argument 1: base de données
50
# argument 2: table
62
# argument 2: table
Line 51... Line 63...
51
is_table = @mysql -N $(1) <<<"DESC $(2)" &> /dev/null
63
is_table = $(mysqlcmd) -N $(1) <<<"DESC $(2)" &> /dev/null
52
 
64
 
53
# macro utilisable pour effectuer des substitutions:
65
# macro utilisable pour effectuer des substitutions:
54
do_subst = sed -e "1i--\n-- fichier d'origine: \"${1}\"\n" \
66
do_subst = sed -e "1i--\n-- fichier d'origine: \"${1}\"\n" \
Line 61... Line 73...
61
		   -e 's/TABLEBDTFX/`$(bdtfx_table)`/g' \
73
		   -e 's/TABLEBDTFX/`$(bdtfx_table)`/g' \
62
		   -e 's/TABLEBDTXA/`$(bdtxa_table)`/g' \
74
		   -e 's/TABLEBDTXA/`$(bdtxa_table)`/g' \
63
		   -e 's/TABLEISFAN/`$(isfan_table)`/g' \
75
		   -e 's/TABLEISFAN/`$(isfan_table)`/g' \
64
		   $(1)
76
		   $(1)
Line -... Line 77...
-
 
77
 
-
 
78
# default target
-
 
79
help:
-
 
80
	@echo "make [alterdb=<$(alterdb)>] [sourcedb=<$(sourcedb)>] [annuairedb=<$(annuairedb)>] [bdtfx=<$(bdtfx)>] [bdtxa=<$(bdtxa)>] [isfan=$(isfan)] [bdd_user=\"\"] [bdd_pass=\"\"] [mysqlbin=mysql]"
-
 
81
	@echo "make o_maj1 mysqlbin=/usr/local/mysql/bin/mysql bdd_user=telabotap bdd_pass=XXX"
65
 
82
 
66
# génère les fichiers avec les bases de données souhaitées
83
# génère les fichiers avec les bases de données souhaitées
67
compile: reset
84
compile: reset
68
	@sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g'  \
85
	sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g'  \
69
		   -e 's/`BASEANNUAIRE`/`$(annuairedb)`/g'  \
86
		   -e 's/`BASEANNUAIRE`/`$(annuairedb)`/g'  \
70
		   -e 's/`BASESOURCE`/`$(sourcedb)`/g'  \
87
		   -e 's/`BASESOURCE`/`$(sourcedb)`/g'  \
71
		   -e 's/TABLEBDTFX/`$(bdtfx_table)`/g'  \
88
		   -e 's/TABLEBDTFX/`$(bdtfx_table)`/g'  \
72
		   -e 's/TABLEBDTXA/`$(bdtxa_table)`/g'  \
89
		   -e 's/TABLEBDTXA/`$(bdtxa_table)`/g'  \
73
		   -e 's/`TABLEISFAN`/`$(isfan_table)`/g'  \
90
		   -e 's/`TABLEISFAN`/`$(isfan_table)`/g'  \
74
		   $(fichiers)
91
		   $(fichiers)
75
	@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" \
92
	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" \
76
			`grep ^BASEEDIT .current|cut -d '\`' -f2` \
93
			`grep ^BASEEDIT .current|cut -d '\`' -f2` \
77
			`grep ^BASEANNUAIRE .current|cut -d '\`' -f2` \
94
			`grep ^BASEANNUAIRE .current|cut -d '\`' -f2` \
78
			`grep ^BASESOURCE .current|cut -d '\`' -f2` \
95
			`grep ^BASESOURCE .current|cut -d '\`' -f2` \
79
			`grep ^TABLE_BDTFX .current|cut -d '=' -f2` \
96
			`grep ^TABLE_BDTFX .current|cut -d '=' -f2` \
80
			`grep ^TABLE_BDTXA .current|cut -d '=' -f2` \
97
			`grep ^TABLE_BDTXA .current|cut -d '=' -f2` \
81
			`grep ^TABLE_ISFAN .current|cut -d '=' -f2`
98
			`grep ^TABLE_ISFAN .current|cut -d '=' -f2`
Line 82... Line 99...
82
	@read
99
	read
83
 
100
 
Line 84... Line 101...
84
reset:
101
reset:
85
	svn revert -q $(fichiers)
102
	svn revert -q $(fichiers)
86
 
103
 
Line 87... Line -...
87
# supprime les fichiers "compilés" (concaténation de plusieurs scripts SQL substitués)
-
 
88
clean:
-
 
89
	rm -f *.comp.sql
-
 
90
 
-
 
91
help:
104
# supprime les fichiers "compilés" (concaténation de plusieurs scripts SQL substitués)
Line 92... Line 105...
92
	@echo "make [alterdb=<tb_cel_test>] [sourcedb=<tb_eflore>] [annuairedb=<tela_prod_v4>] [bdtfx=<1_01>] [bdtxa=<1_00>]"
105
clean:
93
 
106
	rm -f *.comp.sql
94
 
107
 
95
### mises à jour
108
### mises à jour
96
 
109
 
97
# mise à jour de septembre 2013
110
# mise à jour de septembre 2013
Line 98... Line 111...
98
# spécifier dans les targets l'ordre (cf A_LIRE.txt)
111
# spécifier dans les targets l'ordre (cf A_LIRE.txt)
99
# attention, si un prérequis ne génère pas de SQL, cela n'empêchera pas le fichier
112
# attention, si un prérequis ne génère pas de SQL, cela n'empêchera pas le fichier
100
# final de maj d'être généré (bien, 
113
# final de maj d'être généré (bien, 
101
maj1: compile cel_references maj-struct-201307 maj-cleanup-201307 fix-utilisateur-32 dedup-ordre-201307 maj-referentiel-201307
114
maj1: compile cel_references maj-struct-201307 maj-cleanup-201307 fix-utilisateur-32 dedup-ordre-201307 maj-referentiel-201307
Line 102... Line 115...
102
	@echo done
115
	echo done
Line 103... Line 116...
103
 
116
 
Line 126... Line 139...
126
### Cette méthode est de loin préférable et conforme à la philosophie Makefile
139
### Cette méthode est de loin préférable et conforme à la philosophie Makefile
127
cel_references:
140
cel_references:
128
	$(call is_table,$(sourcedb),$(bdtfx_table))
141
	$(call is_table,$(sourcedb),$(bdtfx_table))
129
	$(call is_table,$(sourcedb),nvjfl_v2007)
142
	$(call is_table,$(sourcedb),nvjfl_v2007)
130
	$(call is_table,$(sourcedb),nva_index_v2_03)
143
	$(call is_table,$(sourcedb),nva_index_v2_03)
131
	$(call is_table,$(alterdb),cel_references) || mysql < cel_references.sql
144
	$(call is_table,$(alterdb),cel_references) || $(mysqlcmd) < cel_references.sql
132
o_cel_references:
145
o_cel_references:
133
	$(call is_table,$(sourcedb),$(bdtfx_table))
146
	$(call is_table,$(sourcedb),$(bdtfx_table))
134
	$(call is_table,$(sourcedb),nvjfl_v2007)
147
	$(call is_table,$(sourcedb),nvjfl_v2007)
135
	$(call is_table,$(sourcedb),nva_index_v2_03)
148
	$(call is_table,$(sourcedb),nva_index_v2_03)
136
	$(call is_table,$(alterdb),cel_references) || $(call do_subst,cel_references.sql) > $@.comp.sql
149
	$(call is_table,$(alterdb),cel_references) || $(call do_subst,cel_references.sql) > $@.comp.sql
Line 137... Line 150...
137
 
150
 
138
maj-struct-201307: check_cel_obs
151
maj-struct-201307: check_cel_obs
139
	$(call is_table,$(annuairedb),annuaire_tela)
152
	$(call is_table,$(annuairedb),annuaire_tela)
140
	@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || mysql < maj-struct-201307.sql
153
	$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(mysqlcmd) < maj-struct-201307.sql
141
o_maj-struct-201307: check_cel_obs
154
o_maj-struct-201307: check_cel_obs
142
	$(call is_table,$(annuairedb),annuaire_tela)
155
	$(call is_table,$(annuairedb),annuaire_tela)
Line 143... Line 156...
143
	@mysql -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(call do_subst,maj-struct-201307.sql) > $@.comp.sql
156
	$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs nom_sel"|grep -q 601 || $(call do_subst,maj-struct-201307.sql) > $@.comp.sql
144
 
157
 
145
maj-cleanup-201307: check_cel_obs
158
maj-cleanup-201307: check_cel_obs
-
 
159
	! $(mysqlcmd) -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE nom_ret = 'null' LIMIT 1"|grep -q 1 || $(mysqlcmd) < maj-cleanup-201307.sql
146
	@ ! mysql -N $(alterdb) <<<"SELECT 1 FROM cel_obs WHERE nom_ret = 'null' LIMIT 1"|grep -q 1 || mysql < maj-cleanup-201307.sql
160
o_maj-cleanup-201307:
-
 
161
#	tb_cel_test clean
Line 147... Line 162...
147
o_maj-cleanup-201307:
162
#	 ! $(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
148
	@ ! 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
163
	$(call do_subst,maj-cleanup-201307.sql) > $@.comp.sql
149
 
164
 
150
fix-utilisateur-32: check_cel_obs
165
fix-utilisateur-32: check_cel_obs
Line 151... Line 166...
151
	@mysql -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || mysql < fix-utilisateur-32.sql
166
	$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || $(mysqlcmd) < fix-utilisateur-32.sql
152
o_fix-utilisateur-32: check_cel_obs
167
o_fix-utilisateur-32: check_cel_obs
153
	@mysql -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || $(call do_subst,fix-utilisateur-32.sql) > $@.comp.sql
168
	$(mysqlcmd) -N $(alterdb) <<<"DESC cel_obs ce_utilisateur"|grep -q 255 || $(call do_subst,fix-utilisateur-32.sql) > $@.comp.sql
154
 
169
 
155
dedup-ordre-201307: check_cel_obs
170
dedup-ordre-201307: check_cel_obs
Line 156... Line 171...
156
#@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
171
#$(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
157
	@mysql -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || mysql < dedup-ordre-201307.sql
172
	$(mysqlcmd) -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || $(mysqlcmd) < dedup-ordre-201307.sql
158
o_dedup-ordre-201307: check_cel_obs
173
o_dedup-ordre-201307: check_cel_obs
159
	@mysql -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || $(call do_subst,dedup-ordre-201307.sql) > $@.comp.sql
174
	$(mysqlcmd) -N $(alterdb) <<<"SHOW INDEX FROM cel_obs"|grep -q couple_user_ordre || $(call do_subst,dedup-ordre-201307.sql) > $@.comp.sql
Line 170... Line 185...
170
 
185
 
171
 
186
 
172
 
187
 
173
# pour une prochaine maj
188
# pour une prochaine maj
174
maj-nom-ret:
189
maj-nom-ret: