Mi computadora se averió, pero afortunadamente hice una copia de seguridad de la carpeta C: \ Archivos de programa \ PostgreSQL.
Ahora estoy trabajando en una computadora nueva y me gustaría importar las bases de datos de Postgres anteriores que están almacenadas en el disco externo.
Me gustaría exportar el esquema de una base de datos específica que se encuentra en la carpeta de respaldo.
El archivo PostgreSQL\8.3\data\global\pg_database
contiene información sobre bases de datos y sus OID; por ejemplo:
"db1" 20012
"db2" 23456
Me gustaría exportar el esquema de "db1".
Hay una carpeta llamada "20012" en la carpeta "PostgreSQL\8.3\data\base\20012"
que contiene muchos archivos [500 archivos].
¿Hay alguna forma de exportar el esquema de esa base de datos?
Tenga en cuenta que todos los archivos de la base de datos de Postgresql están ubicados en un disco duro externo y me gustaría exportar el esquema de esa base de datos en un archivo SQL, tomar ese archivo, ejecutarlo y crear la misma base de datos exacta localmente.
fuente
pg_dump -s databasename > schema.sql
generará el resultado en unschema.sql
archivoEn Linux puedes hacer esto
Tal vez también pueda funcionar en Windows , si no intenta lo mismo con pg_dump.exe
fuente
Estoy ejecutando Postgres 9.6 donde tuve que exportar un esquema particular junto con los datos.
Usé el siguiente comando:
Si solo desea el esquema sin datos, use el interruptor en
s
lugar den
A continuación se muestra la lista de conmutadores pg_dump:
fuente
Tenga en cuenta que tiene suficientes privilegios para acceder a ese esquema. Si desea realizar una copia de seguridad como usuario específico, agregue el nombre de usuario en ese comando precedido por
-U
fuente
Si solo desea crear tablas, puede hacerlo
pg_dump -s databasename | awk 'RS="";/CREATE TABLE[^;]*;/'
fuente
Para Linux: (datos excluidos)
pg_dump -s -t tablename databasename > dump.sql
(Para una tabla específica en la base de datos)pg_dump -s databasename > dump.sql
(Para toda la base de datos)fuente
configure un nuevo servidor postgresql y reemplace su carpeta de datos con los archivos de su disco externo.
Luego podrá iniciar ese servidor postgresql y recuperar los datos usando pg_dump (pg_dump -s para el esquema solo como se mencionó)
fuente
Deberías usar algo como esto
pg_dump --schema=your_schema_name db1
, para más detalles, echa un vistazo aquífuente