使用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中不作为命令存在。
有关上述错误的任何想法?
答案 0 :(得分:1)
使用pg:backups gem解决,建议将其替换为Heroku文档中的tap。我使用this guide并将我的转储上传到Dropbox以供Heroku使用。
这是我的步骤和cmds的确切列表:
heroku pgbackups:capture DATABASE
(这只是备份你的heroku数据库)pg_dump -h localhost -U <pg username> -Fc dbname > dbname.dump
heroku pgbackups:restore DATABASE <paste dropbox download link here>
Dropbox技巧:不要使用Dropbox提供的文件链接,因为它是一个html重定向并导致pg:restore失败,即使扩展名以.dump结尾
相反,请在“下载”按钮上导航到您的保管箱页面和“右键单击副本链接地址”。这是您在pgbackups中使用的地址:restore(应该类似于db.dump?token=<long random string>
)
有点笨拙,但完成了工作。如果您知道更好的方式,请告诉我!
答案 1 :(得分:0)
您需要创建一个包含以下内容的.env文件:
DATABASE_URL=postgres://localhost/myapp_development
参考文献: