将SQL转储导入PostgreSQL数据库

我们正在更换主机,旧主机提供了我们网站的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...
        ^

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

解决办法
psql databasename < data_base_dump

这就是你要找的命令。

注意:databasename必须在导入前创建。 请看一下PostgreSQL文档第23章:备份和恢复

评论(15)

这里是你要找的命令。

psql -h hostname -d databasename -U username -f file.sql
评论(3)

我相信你想在psql中运行。

\i C:/database/db-backup.sql
评论(4)