在转储文件上使用pg_restore

时间:2012-05-29 21:29:38

标签: python django postgresql heroku

我有一个关于Heroku的数据库我正在尝试复制到我的本地机器。

我通过执行以下操作创建了数据库备份:

heroku pgbackups:capture

这创建了我通过创建URL链接下载的数据库的转储文件:

heroku pgbackups:url b004

但是现在我有一个转储文件,并且真的不知道如何处理它。我试过了

pg_restore

恢复数据库,但我不知道该信息的去向。我基本上想要从这个转储文件中创建一个.db文件。这可能吗?

最终我的最终目标是访问这个数据库 - 所以如果另一种复制数据库的方法更好,我就可以了。

2 个答案:

答案 0 :(得分:3)

Heroku不允许您使用sqlite文件,因为它们具有只读文件系统。但是你可以使用Django通过dumpdata命令将Heroku中的数据转储到JSON文件中,然后将它们导入到你的本地开发环境中。

由于使用heroku run运行在Web服务器上生成文件的命令可能很困难,我建议您安装django smuggler,这使得此操作成为一个点,然后单击admin中的事件。

enter image description here

答案 1 :(得分:3)

首先,您应该在本地计算机上安装postgres。

PostgreSQL cheat sheet for django beginners

然后,使用pg_restore命令导入转储文件:

pg_restore -d yournewdb -U yournewuser --role=yournewuser /tmp/b001.dump

多数情况下,您的数据现已从您的heroku应用程序克隆。