Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 820 Rev 821
Line -... Line 1...
-
 
1
# Ce Makefile effectue les substitutions de nom de base de données
-
 
2
# nécessaire au préalable de l'application des scripts SQL
-
 
3
 
-
 
4
# Cela est d'un part moins complexe:
-
 
5
# - qu'un script PHP (interpréteur, getopt, framework, ...)
-
 
6
# - qu'un shell-script (lancement avec make)
-
 
7
# et d'autre part plus maintenable qu'un shell-script car
-
 
8
# le versionnage des fichiers (inc ".current") permet certaines facilités.
-
 
9
 
-
 
10
 
-
 
11
# TODO:
-
 
12
# idéalement, ce Makefile devrait permettre une bonne gestion du jeu de dépendances
-
 
13
# entre les scripts, seulement le lancement d'un script pouvant nécessiter un login/mdp
-
 
14
# il est difficile de vouloir rester "simple".
-
 
15
# Ce serait cependant la meilleure manière de procéder, ainsi "maj2" ne serait lancer qu'après
-
 
16
# le succès de "maj1", celui-ci étant "testé" à l'aide d'un fichier comme .succeed ou .ok,
-
 
17
# cf: tentative de make check
-
 
18
 
-
 
19
 
-
 
20
# from:
1
# echo $(egrep -l 'BASE(SOURCE|EDIT|ANNUAIRE)' *.sql)
21
# echo $(egrep -l 'BASE(SOURCE|EDIT|ANNUAIRE)' *.sql)
2
fichiers = cel_references.sql dedup-ordre-201307.sql fix-utilisateur-32.sql maj-cleanup-201307.sql maj-hash-id-obs-migr.sql maj-nom-ret.sql maj-referentiel-201307.sql maj-referentiel-und-201307.sql maj-struct-201307.sql redempteur.sql referonosaure.sql .current
22
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
Line 3... Line 23...
3
 
23
 
4
# la base de données à modifier
24
# la base de données à modifier
Line 5... Line 25...
5
alterdb ?= tb_cel_test
25
alterdb ?= tb_cel_test
Line 11... Line 31...
11
# pour annuaire_tela, lecture seule;
31
# pour annuaire_tela, lecture seule;
12
# utilisée pour initialiser cel_utilisateurs dans maj-struct-201307.sql
32
# utilisée pour initialiser cel_utilisateurs dans maj-struct-201307.sql
13
annuairedb ?= tela_prod_v4
33
annuairedb ?= tela_prod_v4
Line 14... Line 34...
14
 
34
 
15
all:
35
all:
16
	sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g'  \
36
	@sed -i -e 's/`BASEEDIT`/`$(alterdb)`/g'  \
17
		   -e 's/`BASEANNUAIRE`/`$(annuairedb)`/g'  \
37
		   -e 's/`BASEANNUAIRE`/`$(annuairedb)`/g'  \
18
		   -e 's/`BASESOURCE`/`$(sourcedb)`/g'  \
38
		   -e 's/`BASESOURCE`/`$(sourcedb)`/g'  \
19
		   $(fichiers)
39
		   $(fichiers)
20
	@echo 'Attention: les changements sappliqueront sur la base:'
40
	@echo 'Attention: les changements sappliqueront sur la base:'
-
 
41
	@grep ^BASEEDIT .current|cut -d '`' -f2
Line 21... Line 42...
21
	@grep ^BASEEDIT .current|cut -d '`' -f2
42
	@echo "utilisez \"make reset\" si ce n'est pas l'opération escomptée"
22
 
43
 
Line 23... Line 44...
23
reset:
44
reset:
24
	svn revert $(fichiers)
45
	svn revert $(fichiers)
Line 25... Line 46...
25
 
46
 
26
help:
47
help:
-
 
48
	@echo "make [alterdb=<tb_cel_test>] [sourcedb=<tb_eflore>] [annuairedb=<tela_prod_v4>]"
-
 
49
 
-
 
50
maj1:
-
 
51
	@echo 'cat maj-struct-201307.sql maj-cleanup-201307.sql fix-utilisateur-32.sql dedup-ordre-201307.sql|mysql $(alterdb)'
-
 
52
 
-
 
53
 
-
 
54
cel_references:
-
 
55
	@mysqldump -dNq $(alterdb) cel_references 2>/dev/null|grep -q ^CREATE
-
 
56
dedup-ordre-201307:
-
 
57
	@mysql -N $(alterdb)<<<"SELECT distinct ce_utilisateur FROM `cel_obs` GROUP BY ce_utilisateur, ordre HAVING COUNT(*) > 1;"|grep -q .
-
 
58
fix-utilisateur-32:
-
 
59
	@mysql -N $(alterdb)<<<"DESC cel_obs ce_utilisateur"|grep -q 255