将sql dump导入到postgresql数据库中
我们正在交换主机,而旧的提供了我们网站的postgresql数据库的sql转储。 现在我试图在本地的wamp服务器上设置这个testing。
唯一的问题是,我不知道如何导入这个数据库的postgresql 9我已经成立。
我试过pgAdmin III,但我似乎无法find一个“导入”function。 所以我刚刚打开SQL编辑器,将转储的内容粘贴在那里并执行它,它创build表格,但是当他试图把数据放在里面的时候,我总是给我一些错误。
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 ...
我也试过这个命令提示符,但我不能真正find我需要的命令。
如果我做
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
这是你正在寻找的命令。
注意:数据库名必须在导入之前创build。 看一下PostgreSQL文档第23章备份和恢复 。
这是你正在寻找的命令。
psql -h hostname -d databasename -U username -f file.sql
我相信你想在psql中运行:
\i C:/database/db-backup.sql
我不确定这是否适用于OP的情况,但我发现在交互式控制台中运行以下命令对我来说是最灵活的解决scheme:
\i 'path/to/file.sql'
只要确保你已经连接到正确的数据库。 该命令执行指定文件中的所有SQL命令。
这对我有用:
sudo -u postgres psql db_name < 'file_path'
只是为了方便,如果你的垃圾被压缩,你可以做类似的事情
gunzip -c filename.gz | psql dbname
正如Jacob所说, PostgreSQL文档很好地描述了这一切。
工作得很好,在命令行中,所有参数都是必需的,-W是密码
psql -h localhost -U user -W -d database_name -f path/to/file.sql
你可以在pgadmin3中完成。 删除转储包含的模式。 然后右键单击数据库并select恢复。 然后,您可以浏览转储文件。
我用:
cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>
希望这会帮助别人。