txt postgres importar exportar desde datos con postgresql schema export

importar - ¿Cómo puedo exportar el esquema de una base de datos en PostgreSQL?



exportar datos de postgresql a txt (6)

Mi computadora se averió, pero afortunadamente hice una copia de seguridad de la carpeta C: / Program Files / PostgreSQL.

Ahora estoy trabajando en una nueva computadora y me gustaría importar las bases de datos anteriores de Postgres 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 copia de seguridad.

El archivo PostgreSQL/8.3/data/global/pg_database contiene información sobre las 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 una gran cantidad de archivos [500 archivos].

¿Hay alguna manera de exportar el esquema de esa base de datos?

Tenga en cuenta que todos los archivos de la base de datos Postgresql se encuentran 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.


Debería usar algo como esto pg_dump --schema=your_schema_name db1 , para detalles, mire here


Deberías echar un vistazo a pg_dump :

pg_dump -s databasename

Will volcará solo el esquema a stdout como .sql.

Para Windows, es probable que desee llamar a pg_dump.exe . No tengo acceso a una máquina con Windows, pero estoy seguro de que ese es el comando. Vea si la ayuda también le funciona.


En Linux puedes hacer esto

pg_dump -U postgres -s postgres > exportFile.dmp

Tal vez también funcione en Windows , si no, intente lo mismo con pg_dump.exe

pg_dump.exe -U postgres -s postgres > exportFile.dmp


Estoy ejecutando Postgres 9.6 donde tuve que exportar un esquema particular junto con datos.

Utilicé el siguiente comando:

pg_dump.exe -U username -d databasename -n schemaname > C:/mylocation/mydumpfilename.dmp

Si solo desea el esquema sin datos, use el interruptor s lugar de n

A continuación se muestra la lista de conmutadores pg_dump:

C:/Program Files/PostgreSQL/9.6/bin>pg_dump --help pg_dump dumps a database as a text file or to other formats. Usage: pg_dump [OPTION]... [DBNAME] General options: -f, --file=FILENAME output file or directory name -F, --format=c|d|t|p output file format (custom, directory, tar, plain text (default)) -j, --jobs=NUM use this many parallel jobs to dump -v, --verbose verbose mode -V, --version output version information, then exit -Z, --compress=0-9 compression level for compressed formats --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock -?, --help show this help, then exit Options controlling the output content: -a, --data-only dump only the data, not the schema -b, --blobs include large objects in dump -c, --clean clean (drop) database objects before recreating -C, --create include commands to create database in dump -E, --encoding=ENCODING dump the data in encoding ENCODING -n, --schema=SCHEMA dump the named schema(s) only -N, --exclude-schema=SCHEMA do NOT dump the named schema(s) -o, --oids include OIDs in dump -O, --no-owner skip restoration of object ownership in plain-text format -s, --schema-only dump only the schema, no data -S, --superuser=NAME superuser user name to use in plain-text format -t, --table=TABLE dump the named table(s) only -T, --exclude-table=TABLE do NOT dump the named table(s) -x, --no-privileges do not dump privileges (grant/revoke) --binary-upgrade for use by upgrade utilities only --column-inserts dump data as INSERT commands with column names --disable-dollar-quoting disable dollar quoting, use SQL standard quoting --disable-triggers disable triggers during data-only restore --enable-row-security enable row security (dump only content user has access to) --exclude-table-data=TABLE do NOT dump data for the named table(s) --if-exists use IF EXISTS when dropping objects --inserts dump data as INSERT commands, rather than COPY --no-security-labels do not dump security label assignments --no-synchronized-snapshots do not use synchronized snapshots in parallel jobs --no-tablespaces do not dump tablespace assignments --no-unlogged-table-data do not dump unlogged table data --quote-all-identifiers quote all identifiers, even if not key words --section=SECTION dump named section (pre-data, data, or post-data) --serializable-deferrable wait until the dump can run without anomalies --snapshot=SNAPSHOT use given snapshot for the dump --strict-names require table and/or schema include patterns to match at least one entity each --use-set-session-authorization use SET SESSION AUTHORIZATION commands instead of ALTER OWNER commands to set ownership Connection options: -d, --dbname=DBNAME database to dump -h, --host=HOSTNAME database server host or socket directory -p, --port=PORT database server port number -U, --username=NAME connect as specified database user -w, --no-password never prompt for password -W, --password force password prompt (should happen automatically) --role=ROLENAME do SET ROLE before dump If no database name is supplied, then the PGDATABASE environment variable value is used. Report bugs to <[email protected]>.


Si solo quiere crear tablas, puede hacer pg_dump -s databasename | awk ''RS="";/CREATE TABLE[^;]*;/'' pg_dump -s databasename | awk ''RS="";/CREATE TABLE[^;]*;/''


configure un nuevo servidor postgresql y reemplace su carpeta de datos con los archivos de su disco externo.

A continuación, podrá iniciar ese servidor postgresql y recuperar los datos utilizando pg_dump (pg_dump -s para el esquema solo como se mencionó)