Dupliquer une base

Comment créer un site de formation copie conforme du site de production

Niveau : expert

Vous pourriez être tenté de créer un site de formation qui est une copie conforme de votre site de production. Le souci est qu’une duplication seule de la base ne suffira pas : en effet, CapInfo permet un paramétrage étendu, et gère simultanément le nom de domaine et le répertoire de stockage de la base.

Comment faire

Arrêter tomcat
# <répertoire de Tomcat>/shutdown.sh
# killall java

Faire un dump de la base que vous souhaitez dupliquer et de la base destination s’il y en a déjà une
# <répertoire de la webapps de CapInfo>/bin/serveurBD/sauvegardeDB.sh <base source> /tmp/<base source>.dmp
# <répertoire de la webapps de CapInfo>/bin/serveurBD/sauvegardeDB.sh <base destination> /tmp/<base destination>.dmp

Supprimer la base destination si nécessaire
# su - postgres
# dropdb <base destination>

Renommer la base source
# psql template1
# ALTER DATABASE "<base source>" RENAME TO "<base destination>";
# \q
# exit

Recharger la base source
# <répertoire de la webapps de CapInfo>/bin/serveurBD/restaureDB.sh <base source> /tmp/<base source>.dmp

Changer le nom du répertoire des assets dans la base cible
# su - postgres
# psql <base cible>
# select * from cat_categories;

noter l’id du répertoire initial de création du site, généralement l’un des premiers enregistrements.

# update cat_categories set name=’<nouveau répertoire>’ where category_id=<id noté>;
# \q
# exit

Modifier le Nom de Domaine dans la base cible
# cp /wct95/conf/virtualhost.conf /wct95/conf/virtualhost.conf_bak[
# ./sitemanager-express.sh modifyhostname <base cible> <id noté> <ancien nom de domaine> <nouveau nom de domaine>
# cp /wct95/conf/virtualhost.conf_bak /wct95/conf/virtualhost.conf

Relancer Tomcat
# <répertoire de Tomcat>/catalina.sh start