I use EMS SQL Manager for PostgreSQL and I need to dump difficult database(domains, 300+ stored procedures/functions, triggers, data, etc). This tool cannot do it.
Please advice me good GUI tool for postgres.
You can always just use the command line utility.
Dump the cluster:
pg_dumpall -p 5432 > /path/to/my/dump_file.sql Dump a single database:
pg_dump -p 5432 mydb > /path/to/my/mydb_dump.sql Dump the schema only:
pg_dump -p 5432 mydb -s > /path/to/my/mydb_dump_schema.sql If you want to restore to an empty database, you might want to run before restoring:
DROP DATABASE IF EXISTS mydb; CREATE DATABASE mydb; The --clean option for pg_dump is not needed in this case.
mydb in the example.Backup your database no tool needed.we can do with terminal
All commands should be run as the postgres user.
sudo su - postgres Backup a single database
pg_dump db_name > db_backup.sql Restore a single database
psql db_name < db_backup.sql Backup an entire postgres database cluster
pg_dumpall > cluster_backup.sql Restore an entire postgres database cluster
psql -f cluster_backup.sql postgres Refer this source for more commands backup commands
pgAdmin3 will do the trick, it has pg_dump and pg_restore included in the installer.
--clean option? If the object to be deleted does not exist while restoring, nothing breaks.if you use md5 authentication technique and want to use a specific user to get db dump, you can do
$ pg_dump -U username -p 5432 dbname > filename-to-backup-to.sql To avoid credential and username issues while restoring, you can use --no-owner flag
$ pg_dump --no-owner -U username -p 5432 dbname > filename-to-backup-to.sql To restore the backup use below command
$ psql -U username -d dbname -f filename-to-backup-to.sql For example, you can export everything such as all databases, users(roles), etc to backup.sql with pg_dumpall as shown below. *backup.sql is created if it doesn't exist and you better use any superusers(e.g., postgres) to do it smoothly without permission errors and pg_dumpall can output SQL in only plain text format rather than custom format or tar format and my answer explains how to export schema and data with pg_dump and the doc explains how to export and import everything with pg_dumpall:
pg_dumpall -U postgres > backup.sql Or:
pg_dumpall -U postgres -f backup.sql Or, you can export everything except the data of all databases to backup.sql as shown below:
pg_dumpall -U postgres -s > backup.sql Or:
pg_dumpall -U postgres --schema-only > backup.sql Or, you can export everything except the schema of all databases to backup.sql with only INSERT statement which has column names as shown below:
pg_dumpall -U postgres -a --column-inserts > backup.sql Or:
pg_dumpall -U postgres --data-only --column-inserts > backup.sql Then, you will need to input multiple passwords after running the command above:
Password: Password: Password: ... Then, you can import backup.sql(everything) into your PostgreSQL as shown below.
psql -U postgres -f backup.sql Or, you can try this below which doesn't work on Windows:
psql -U postgres < backup.sql Or, you can import backup.sql(everything) into your PostgreSQL with \i after login with the user(role) postgres as shown below:
psql -U postgres postgres=# \i backup.sql Or, you can import backup.sql into multiple databases one by one as shown below. *You have to create each database (and the schema to import only data) before hand otherwise there is error and my answer explains how to create a database and you must use psql to import SQL in plain text format rather than pg_restore which can import SQL in custom format or tar format and my answer explains how to import backup.sql into orange database:
psql -U postgres -f backup.sql orange psql -U postgres -f backup.sql lemon psql -U postgres -f backup.sql peach ... In addition, you can export all databases to backup.sql without multiple password prompts by setting a password(e.g., banana) to PGPASSWORD as shown below:
PGPASSWORD=banana pg_dumpall -U postgres > backup.sql And, you can export all databases excluding orange and *apple* databases to backup.sql as shown below. *Multiple --exclude-database are available in one command:
pg_dumpall -U postgres --exclude-database=orange --exclude-database=*apple* > backup.sql Or:
pg_dumpall -U postgres --exclude-database orange --exclude-database *apple* > backup.sql