如何使用pg_dump或psql从*.sql恢复PostgreSQL表



我需要在控制台工具中恢复PostgreSQL数据库中的一个大表(250mb)。如何使用ps_dump或psql来完成此操作?

只需使用psql连接到数据库并运行i /path/to/filename.sql

psql --username yourusername --dbname yourdatabasename -f yourfile.sql

如这里所阐明的。根据配置,可能会询问您的密码。

如果它是一个新安装的数据库引擎,但还没有数据库,请使用postgres作为数据库名称,并尝试省略用户名部分(新安装通常应授予安装它的当前用户完全访问权限)。

如果您仍然无法登录,请在安装中的任何位置临时编辑pg_hba.conf,并将localhost临时设置为trusted。然后,您可以将postgres指定为用户名和数据库名称。

完成后不要忘记还原pg_hba.conf更改。

psql dbname < /path/to/dump.sql

如果需要,你甚至可以在飞行中修改你的转储:

sed 's/OWNER TO olduser/OWNER TO newuser/g' <  /path/to/dump.sql | psql dbname
psql -U postgres -d doctor_dev < /home/ravi/mydevelopment

最新更新