我们正在切换主机,旧主机提供了我们站点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...
^
导入数据库的最佳方法是什么?
我尝试了许多不同的解决方案来恢复postgres备份。我在MacOS上遇到了被拒绝许可的问题,似乎没有解决方案。
下面是我如何做到的:
Postgres附带Pgadmin4。如果你使用macOS,你可以按CMD+空格并输入pgadmin4来运行它。这将在chrome中打开一个浏览器选项卡。
如果在让pgadmin4工作时遇到错误,请尝试在终端中杀死所有pgadmin4,然后再试一次。
获取pgadmin4 +备份/恢复的步骤
1. 创建备份
通过右键单击数据库-> "backup"来完成此操作
2. 为文件指定一个名称。
像test12345。点击备份。这将创建一个二进制文件转储,它不是.sql格式
3.查看下载位置
在屏幕的右下角应该会有一个弹出窗口。点击“更多详细信息”页面查看备份文件下载到的位置
4. 找到下载文件的位置
在本例中,是/users/vincenttang
5. 从pgadmin恢复备份
假设您正确地执行了第1到4步,您将得到一个恢复二进制文件。您的同事可能会在他们的本地机器上使用您的恢复文件。有人说到pgadmin并恢复吗
通过右键单击数据库-> "restore"来完成此操作
6. 选择文件查找器
确保手动选择文件位置,不要将文件拖放到pgadmin的上传字段中。因为您将遇到错误权限。相反,找到你刚刚创建的文件:
7. 查找该文件
你可能需要将右下角的过滤器改为“所有文件”。从第4步开始查找该文件。现在点击右下角的“选择”按钮确认
8. 恢复该文件
您将再次看到这个页面,文件的位置已被选中。继续并恢复它
9. 成功
如果一切正常,右下角应该弹出一个指示符,显示恢复成功。您可以导航到您的表,以查看每个表上的数据是否已被恢复。
10. 如果不成功:
如果第9步失败,请尝试删除数据库中的旧公共模式。转到“查询工具”
执行以下代码块:
DROP SCHEMA public CASCADE; CREATE SCHEMA public;
现在再尝试第5步到第9步,应该没问题
总结
这就是我如何备份/恢复我在Postgres上的备份,当我有错误的权限问题,不能作为超级用户登录时。或者使用chmod为文件夹设置读写凭据。此工作流适用于pgadmin默认为“Custom”的二进制文件转储。我假设.sql也是这样,但我还没有测试过