pg_dump not dumping the table data - postgresql

I am trying to download a single table backup which is around 250GB in size, but when I try to do that using pg_dump i do not get data but only get the table structure, may be i am missing something, any help with this would be really great. below is what i am using
pg_dump -Upostgres -t "\"table\"" database_name > backup.sql
This only dumps the structure but not data. I want the structure as well as data.
Any help in how to achieve this would be great, Thanks.

I would do like this:
pg_dump --host ip_address -p port -U user database_name -t table > /tmp/backup.sql

Related

Dump and restore in the same server but another database in postgresql

I dumped a database and try to restore in the same server but in another database with another user and get some error because in the dump there are some alter table to the original user.
I did it with this commands:
Dump:
pg_dump --format=c -W -h remote.server -U originaluser originaldatabase >somefile.sql
Restore:
pg_restore -W -h remote.server -U destuser --dbname=destdatabase somefile.sql
How can i make a dump like mysqldump in mysql? So when i import the dump the index and the tables are owned by the user that is executing the import.
Thank you.
PD: I try with psql too with this line:
psql -h remote.server -W -U destuser destdatabase < somefile.sql
The error i got is that the sequence alredy exists, some table have serial8 so have a function and a sequence. How to export with different names or import in the new database without this error?
Thank you.
I found my problem, when you delete the table you did not delete the sequence. You must delete the sequence too.
The error was because the sequence alredy exists and is not stored inside the table. You must delete the table and the sequences so you would look inside the table for all the sequences so you can delete the right ones.
Thank you.

copy (pg_dump) .sql file to postgresql using Cygwin

I have downloaded YELP's sql file and tried to import the sql to my local Postgresql.
I am running postgres on Windows 10 and using Cygwin to execute command that I have found on Google. (it took me forever to use Cygwin instead of windows psql shell)
anyhow, Yelp gives data schema in sql and also data in sql. You may find them a link attached below
https://www.yelp.com/dataset/download
so, basically what I thought was creating an empty table with YELP's schema
the, copy all YELP's data into that table.
pg_dump -h localhost -p 5433 -U postgres -s mydb < D:/YELP/yelp_schema.sql
pg_dump -h localhost -p 5433 -U postgres -d mydb < D:/YELP/yelp_sql-2.tar
and I am checking my database transaction and it doesn't change nothing and i do not see the table.
this is what i see on Cygwin terminal
enter image description here
and nothing on my postgresql database
Please let me know what I have missed.
Thanks a lot
your link asks for email to download. I would suspect yelp to be not transparent for it. So I did not check if they have any advise on their data sets... Anyway you use pg_dump to dump the data. to import the resulting file use psql for plain sql files and pg_restore for custom format ones...
Eg:
psql -h localhost -p 5433 -U postgres -f D:/YELP/yelp_schema.sql
pg_restore -h localhost -p 5433 -U postgres -s worldmap -Ft D:/YELP/yelp_schema.sql
https://www.postgresql.org/docs/current/static/app-pgdump.html
pg_dump — extract a PostgreSQL database into a script file or other
archive file

Postgres - copying a table from a dump file

I have a database dump that I generated with pg_dump, like so:
pg_dump -C remote_db -a --no-owner -t my_table > dump.sql
and I'm looking to copy a single table over from it into my local database, with data only (not schema) and with no ownership settings. I'm familiar with how to do it directly from another db using pg_dump, something like:
pg_dump -C remote_db -a --no-owner -t my_table | psql local_db
But I'm not sure how to replicate the same effect from a file.
I've tried something like:
pg_restore -d local_db -a --no-owner -t my_table dump.sql
But got an error:
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.
I'm not sure how to use psql to achieve the same thing. Help would be appreciated.

Is it possible to restore PostgreSQL data without overwriting existing data?

I have 2 backup files and I want to merge all this data on my database.
I try to use pg_restore but when I use with the second database file I lost the first data set.
Look for my command:
pg_restore -U postgres -c --if-exists -d ravpacheco_db "C:\Users\ravpacheco\xpto1.backup"
I also search all options flags for pg_restore command but I can't find some usefull thing
My problem is with my pg_dump command. If I created a backup file only with data my restore will work
Now I'm using this pg_dump command
pg_dump --column-inserts --data-only --table=<table> <database>
I resolved my problem using this stackoverflow thread

PostgreSQL: How do I backup database with name A and load it to database with name B?

I have two databases on the same server. One named A and one named B. Booth databases have the same structure. I want to empty database B and load it with data from database A. Which is the best way to do this?
I have tried to take backup of database A in plain format. Then open the resulting sql-file and replace every occurence of 'A' with 'B' and then run the sql-script. This worked but I think it should be an easier way to move data from one database to another. Is it?
I use 'pgAdmin III' as my tool, but this is not necessary.
This is my first post here, hope the question is relevant and structured well enough. I tried google first but found it hard to find anyone with the same question.
Thanks in advance!
/David
SOLUTION: After help from Craig, this is how I did it
pg_dump -Fc -a -f a.dbbackup A
psql -c 'TRUNCATE table1, table2, ..., tableX CASCADE'
pg_restore dblive.backup -d B -c (not sure if -c was necessary)
Backup:
pg_dump -Fc -f a.dbbackup
Restore:
psql -c 'CREATE DATABASE b;'
pg_restore --dbname b a.dbbackup
Use the -U, -h etc options as required to connect to the correct host as the correct user with permissions to dump, create and restore the DB. See the docs for psql, pg_dump and pg_restore for more info (they all take the same options for connection control).