2017-05-14 1 views
0

Comment sauvegarder et restaurer uniquement la liste (nom) des bases de données, rôles et droits pour les bases de données dans postgresql sans données?Comment sauvegarder et restaurer uniquement la liste (nom) des bases de données, rôles et droits pour les bases de données dans postgresql sans données?

script Bash pour la base de données liste get postgresql

sudo -i -u postgres psql -t -A -c 'SELECT datname FROM pg_database' 

Mais comment restaurer les bases de données et les relations pour les rôles et les bases de données postgresql?

Vao Tsun réponse:

pour préparer sql avec la liste de base de données pour l'utilisation lissée de création comme: psql -c « , sélectionnez 'créer la base de données '|| datname ||';' à partir de pg_database où non datistemplate et datname! = 'postgres'; " -Au> cdbs.sql, pour créer la base de données à partir d'une liste , psql -f cdbs.sql nouveau cluster contre

Mais toutes les bases de données restaurées ont postgres propriétaire. Comment restaurer les bases de données avec le propriétaire? Merci

+0

droit des relations sans relations .. –

Répondre

0

du haut de la tête - essayez:

  1. pour obtenir tous les rôles, utilisez pg_dumpall -g
  2. pour obtenir les autorisations utiliser pg_dump -s >to_file.sql puis psql -f to_file.sql Ignorer les erreurs de créations.
  3. pour préparer sql avec la liste de base de données pour la création smth d'utilisation comme: psql -c "select 'create database '||datname||';' from pg_database where not datistemplate and datname != 'postgres';" -At >cdbs.sql, pour créer la base de données à partir d'une liste, utilisez psql -f cdbs.sql contre nouveau cluster
+0

Mais comment créer des bases de données de la liste? –

+0

ajouté à la réponse –

+0

comment créer des bases de données à partir de la liste? Merci –