Mon ordinateur est tombé en panne mais, heureusement, j'ai sauvegardé le dossier C: \ Program Files \ PostgreSQL.
Maintenant, je travaille sur un nouvel ordinateur et je voudrais importer les bases de données Postgres précédentes qui sont stockées sur le disque externe.
Je souhaite exporter le schéma d'une base de données spécifique qui se trouve dans le dossier de sauvegarde.
Le fichier PostgreSQL\8.3\data\global\pg_database
contient des informations sur les bases de données et leurs OID; par exemple:
"db1" 20012
"db2" 23456
Je voudrais exporter le schéma de "db1".
Il y a un dossier nommé "20012" dans le dossier "PostgreSQL\8.3\data\base\20012"
qui contient beaucoup de fichiers [500 fichiers].
Existe-t-il un moyen d'exporter le schéma de cette base de données?
Notez que tous les fichiers de la base de données Postgresql sont situés sur un disque dur externe et je voudrais exporter le schéma de cette base de données dans un fichier SQL, prendre ce fichier, l'exécuter et créer la même base de données exacte localement.
la source
pg_dump -s databasename > schema.sql
affichera le résultat dans unschema.sql
fichierSous Linux, vous pouvez faire comme ça
Peut-être que cela peut aussi fonctionner sous Windows , sinon essayez la même chose avec pg_dump.exe
la source
J'utilise Postgres 9.6 où je devais exporter un schéma particulier avec des données.
J'ai utilisé la commande suivante:
Si vous voulez uniquement le schéma sans données, utilisez le commutateur
s
au lieu den
Voici la liste des commutateurs pg_dump:
la source
Veuillez noter que vous disposez des privilèges suffisants pour accéder à ce schéma. Si vous souhaitez effectuer une sauvegarde en tant qu'utilisateur spécifique, ajoutez le nom d'utilisateur dans cette commande précédé de
-U
la source
Si vous ne voulez que créer des tables, vous pouvez faire
pg_dump -s databasename | awk 'RS="";/CREATE TABLE[^;]*;/'
la source
Pour Linux: (données exclues)
pg_dump -s -t tablename databasename > dump.sql
(Pour une table spécifique dans la base de données)pg_dump -s databasename > dump.sql
(Pour toute la base de données)la source
configurez un nouveau serveur postgresql et remplacez son dossier de données par les fichiers de votre disque externe.
Vous pourrez alors démarrer ce serveur postgresql et récupérer les données en utilisant pg_dump (pg_dump -s pour le schéma uniquement comme mentionné)
la source
Vous devriez utiliser quelque chose comme ça
pg_dump --schema=your_schema_name db1
, pour plus de détails, regardez icila source