Pages: 1
- Sujet précédent - PostgreSQL - Modifier 1 database qui modifie toutes les autres - Sujet suivant
#1 Thu 22 January 2015 15:55
- Sophie_Géo
- Participant actif
- Lieu: Nantes
- Date d'inscription: 16 Jul 2012
- Messages: 59
PostgreSQL - Modifier 1 database qui modifie toutes les autres
Bonjour,
J'ai crée une database "modèle" avec une structure type.
Cette database a été dupliquée plusieurs fois (sur le même serveur) pour permettre à mes collègues de travailler sur leur propre espace (25 bases en tout).
Je souhaite modifier cette base "modèle" et qu'elle répercute cette modif sur toutes les autres bases de mes collègues.
Est-ce-possible? Comment faire?
Merci!
Ps: J'ai bien une petite idée concernant Réplication Slony mais il faut créer un cluster et que sais je encore, je n'ai peut être pas les capacités de me lancer là dedans.
Hors ligne
#2 Thu 22 January 2015 16:52
Re: PostgreSQL - Modifier 1 database qui modifie toutes les autres
Bonjour,
Je vous conseille de rester assez simple si c'est une action one-shot : faire toutes les modifications avec des requêtes SQL sur votre base principale. Enregistrez ces requêtes dans un fichier, et rejouez avec psql ce fichier sur chacune des bases.
Vincent
Hors ligne
#3 Thu 22 January 2015 17:00
- Sophie_Géo
- Participant actif
- Lieu: Nantes
- Date d'inscription: 16 Jul 2012
- Messages: 59
Re: PostgreSQL - Modifier 1 database qui modifie toutes les autres
Re bonjour,
Merci pour cette info, ça peux être pas mal.
Mais cela sous entend que j'enregistre mes requêtes et que je l'ouvre une fois sur chacune des 25 bases, soit 25 fois la même manip...
J'aurai aimé pouvoir faire une manip sur la base principale et qu'il ajuste sur toutes les bases d'un coup...
Hors ligne
#4 Thu 22 January 2015 17:17
- Sophie_Géo
- Participant actif
- Lieu: Nantes
- Date d'inscription: 16 Jul 2012
- Messages: 59
Re: PostgreSQL - Modifier 1 database qui modifie toutes les autres
Parce que pour l'instant j'ai 25 bases mais on pourrait passer à 45/50
Hors ligne
#5 Thu 22 January 2015 18:22
Re: PostgreSQL - Modifier 1 database qui modifie toutes les autres
Il faut faire le rejeu sur les autres bases en ligne de commande en utilisant psql dans une boucle, ou bien générer toutes les instructions de la ligne de commande.
Par exemple quelque chose de ce gout là en bash :
Code:
for db in mabase1 mabase2 mabase3; do psql -h localhost -f mesrequetes.sql $db ; done
Ou, pour le fun générer les lignes de commande en SQL (c'est assez efficace finalement) :
Code:
select 'psql -h localhost -f mesrequetes.sql ' || dbname as cmd from (values ('db1'),('db2') ) as dbs(dbname);
Il faut compléter les options de psql et éventuellement remplir un .pgpass pour ne pas taper les mots de passe.
Hors ligne
Pages: 1
- Sujet précédent - PostgreSQL - Modifier 1 database qui modifie toutes les autres - Sujet suivant