22

我需要在控制台工具中恢复 PostgreSQL 数据库中的一个大表(250mb)。我如何使用 ps_dump 或 psql 来做到这一点?

4

4 回答 4

41

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

于 2012-02-24T09:30:21.280 回答
19
psql --username yourusername --dbname yourdatabasename -f yourfile.sql

如澄清here。根据配置,可能会要求您输入密码。

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

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

完成后不要忘记恢复 pg_hba.conf 更改。

于 2013-01-18T07:49:55.877 回答
11
psql dbname < /path/to/dump.sql

如果需要,您甚至可以即时修改转储:

sed 's/OWNER TO olduser/OWNER TO newuser/g' <  /path/to/dump.sql | psql dbname
于 2013-02-28T16:16:48.230 回答
3
psql -U postgres -d doctor_dev < /home/ravi/mydevelopment
于 2017-01-21T07:03:46.400 回答