Ruby On Rails如何将本地Postgres数据库复制到Heroku

时间:2015-01-14 20:30:20

标签: postgresql heroku

我在RubyMine终端上试过这个:

heroku pg:push ror_development postgres://budobqbtsbzmlx:hUNYKkaMap-cExovtPJat4ajPm@ec2-54-217-208-1 58.eu-west-1.compute.amazonaws.com:5432/dbhsnsvf36h8tu

但是它回复了我的错误:

  

未知数据库:postgres:// budobqbtsbzmlx:hUNYKkaMap-cExovtPJat4ajPm@ec2-54-217-208-158.eu-west-1.compute.amazonaws。   COM:5432 / dbhsnsvf36h8tu。有效选项包括:DATABASE_URL,HEROKU_POSTGRESQL_ONYX_URL

还有这个错误:

  

连接HEROKU_POSTGRESQL_ONYX_URL(DATABASE_URL)   “psql”未被识别为内部或外部命令,   可操作程序或批处理文件。

有人可以在Windows上显示执行此操作的详细示例吗?

1 个答案:

答案 0 :(得分:2)

错误消息指出您应该使用环境变量而不是显式名称。 The documentation声明你应该做的事情如下:
heroku pg:push mylocaldb HEROKU_POSTGRESQL_ONYX

那就是说,我从来没有使用过这种技术,但确实成功地使用this procedure将我的本地数据库推送到heroku postgresql。

以下是简短版本:

  1. 安装pgbackups:
    heroku addons:add pgbackups

  2. 备份本地数据库:
    pg_dump -Fc --no-acl --no-owner -h localhost -U <user> <dbname> > local_pg.dump

  3. 将此文件上传到Web服务器(我使用S3或dropbox)。我们假设http://www.dropbox.com/me/local_pg.dump

  4. 现在恢复到你的神奇数据库:
    heroku pgbackups:restore DATABASE 'http://www.dropbox.com/me/local_pg.dump'