2015-06-21 59 views
0

我最近犯了一个错误,在我的本地主机上回滚我的数据库太远,并删除了我所拥有的数据库中的所有数据。我确实迁移了数据库,所以他们会返回,但仍然被清除。试图将Heroku数据库拉到我的本地主机

询问接下来要做什么,我被告知应该在Heroku上备份数据库(其中包含所有当前信息)并将其拖到本地主机上。如果这是正确的行动,那么我仍然面临一个问题。当我键入: heroku pg:pull DATABASE_URL mylocaldb --app (my_app_name)它会返回一个错误:

sh: createdb: command not found 
!  
! Unable to create new local database. Ensure your local Postgres is 
working and try again. 

我没有数据库的最了解,因为我更新;不过,我已经在本地机器上下载了sql。我输入的所有命令都在常规控制台中,而不是psql终端。

如果任何人有任何知识或可以帮助我,我将不胜感激。非常感谢!

编辑:如果你有另一种方法/解决方案,请让我知道。我无法更新我的应用程序,直到完成此操作,因此我不会丢失我的信息。

回答

0

我会尝试使用备份/还原:

heroku pg:backups --app MYAPPNAME capture 
curl -o latest.dump `heroku pg:backups --app MYAPPNAME public-url` 

为(几乎)在记录 https://devcenter.heroku.com/articles/heroku-postgres-import-export

--app MYAPPNAME奇怪的位置。它需要在heroku子命令之后以及任何其他参数之前立即执行。

+0

pg_restore无法正常工作,因为我收到'-bash:pg_restore:command not found' - 我想这是我最初尝试使用pg:pull方法的原因。 pg:backup和curl工作正常,但不是最后一步。 –

+0

听起来像您的$ PATH /破损的Posgres安装中的错误。我的pg_restore位于/ usr/bin/pg_restore中。您也可以尝试pgAdmin应用程序。 Restore ...选项位于数据库的上下文菜单中。 – MZB

+0

我很欣赏它,但它实际上是一个更大的问题。 Heroku使用Postgres,我在本地使用Sqlite3。我最终完全删除了sqlite3并在我的项目中使用了PG。我在这里写了一个关于它的小博客(http://www.joedayvie.com/articles/11),以备任何人希望看到。 –

相关问题