¿Hay alguna manera de crear una copia de seguridad de una sola tabla dentro de una base de datos usando postgres? ¿Y cómo? ¿Esto también funciona con el comando pg_dump?
postgresql
backup
pg-dump
Elitmiar
fuente
fuente
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"
pero salió:pg_restore: [tar archiver] corrupt tar header found in --
psql -U username -d database -1 -f your_dump.sql
--ignore-version
. La respuesta de Prashant Kumar, que es más simple, funcionó para mí.Si estás en Ubuntu,
sudo su postgres
pg_dump -d <database_name> -t <table_name> > file.sql
Asegúrese de que está ejecutando el comando en el que el
postgres
usuario tiene permiso de escritura (Ejemplo:/tmp
)Editar
Si desea volcar el .sql en otra computadora, es posible que deba considerar omitir la información del propietario que se guarda en el archivo .sql.
Puedes usar
pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
fuente
pg_dump -d <database_name> > file.sql
pg_dump -t <table_name> <database_name> > file.sql
Puede realizar la copia de seguridad de una sola tabla, pero sugeriría realizar una copia de seguridad de toda la base de datos y luego restaurar la tabla que necesite. Siempre es bueno tener una copia de seguridad de toda la base de datos.
9 formas de usar pg_dump
fuente
max(id)
en mi mesa. esta es la respuesta que funcionó y estoy seguro, al mirar el sql generado, que podría haberlo restaurado.Si prefiere una interfaz gráfica de usuario, puede usar pgAdmin III (Linux / Windows / OS X). Simplemente haga clic derecho en la tabla de su elección, luego "copia de seguridad". Creará un
pg_dump
comando para ti.fuente
Como una adición a la respuesta de Frank Heiken, si desea usar
INSERT
declaraciones en lugar decopy from stdin
, entonces debe especificar la--inserts
banderapg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Tenga en cuenta que omití la
--ignore-version
bandera, porque está en desuso.fuente