将SQL转储导入PostgreSQL数据库

℡╲_俬逩灬. 提交于 2020-02-28 08:59:15

我们正在交换主机,而旧主机提供了我们站点PostgreSQL数据库的SQL转储。

现在,我正在尝试在本地WAMP服务器上进行设置以对此进行测试。

唯一的问题是我不知道如何在已设置的PostgreSQL 9中导入该数据库。

我尝试了pgAdmin III,但似乎找不到“导入”功能。 因此,我只是打开了SQL编辑器,并将转储的内容粘贴在那里并执行了它,它创建了表,但是在尝试将数据放入其中时一直给我错误。

ERROR:  syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...

The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t   2011-05-24 16:45:01.768633  2011-05-24 16:45:01.768633  view    nl ...  

我也尝试通过命令提示符执行此操作,但找不到所需的命令。

如果我做

psql mydatabase < C:/database/db-backup.sql;

我得到错误

ERROR:  syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
        ^

导入数据库的最佳方法是什么?


#1楼

我相信您想在psql中运行:

\i C:/database/db-backup.sql

#2楼

这是您要查找的命令。

psql -h hostname -d databasename -U username -f file.sql

#3楼

您可以在pgadmin3中做到这一点。 删除转储中包含的架构。 然后右键单击数据库,然后选择“还原”。 然后,您可以浏览转储文件。


#4楼

这对我有用:

sudo -u postgres psql db_name < 'file_path'

#5楼

我不确定这是否适用于OP的情况,但是我发现在交互式控制台中运行以下命令对我来说是最灵活的解决方案:

\i 'path/to/file.sql'

只要确保您已经连接到正确的数据库即可。 该命令执行指定文件中的所有SQL命令。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!