在Win7中将postgres db推送到heroku的简单方法? db:pull和pg:transfer的问题

时间:2013-04-12 15:10:28

标签: database postgresql heroku taps

使用Rails 3.2.2,完成从sqlite到postgres 9.2的迁移。 在this教程中使用的答案作为安装postgres的指南,并且卡在第11步,它要求运行heroku db:pull我得到的地方:

Failed to connect to database: Sequel::AdapterNotFound -> LoadError: cannot load such file --pg

我挖得更深,发现db:pull(taps gem)已被弃用,并且遇到了一些关于pg:transfer的建议。安装pg:transfer,但我得到的印象可能只是* nix(?),好像我运行:heroku pg:transfer它返回:

Heroku client internal error. No such file or directory - .env (Errno:ENOENT)

如果我做pg:用-f和-t转移它会给我: 'env' is not recognized as an internal or external command, operable program or batch file表示它未绑定到路径或在Windows中不作为命令存在。

有关上述错误的任何想法?

2 个答案:

答案 0 :(得分:1)

使用pg:backups gem解决,建议将其替换为Heroku文档中的tap。我使用this guide并将我的转储上传到Dropbox以供Heroku使用。

这是我的步骤和cmds的确切列表:

  1. 将heroku.com附加组件中的pgbackup添加到我的实例中。
  2. heroku pgbackups:capture DATABASE(这只是备份你的heroku数据库)
  3. pg_dump -h localhost -U <pg username> -Fc dbname > dbname.dump
  4. 将dbname.dump移动到我的保管箱上的文件夹
  5. 在Dropbox中,右键单击dbname.dump =&gt; “分享链接”
  6. 取消共享对话框弹出窗口,右键单击“下载按钮”,复制链接地址(Chrome)
  7. heroku pgbackups:restore DATABASE <paste dropbox download link here>
  8. Dropbox技巧:不要使用Dropbox提供的文件链接,因为它是一个html重定向并导致pg:restore失败,即使扩展名以.dump结尾

    相反,请在“下载”按钮上导航到您的保管箱页面和“右键单击副本链接地址”。这是您在pgbackups中使用的地址:restore(应该类似于db.dump?token=<long random string>

    有点笨拙,但完成了工作。如果您知道更好的方式,请告诉我!

答案 1 :(得分:0)

您需要创建一个包含以下内容的.env文件:

DATABASE_URL=postgres://localhost/myapp_development

参考文献: