据我所知,Heroku 应该自动生成一个 database.yml 文件,并忽略本地文件。但是,我看到了一个错误,这不是真的,我对本地 database.yml 的更改正在影响 Heroku 应用程序。这是有问题的,因为我不知道应该如何设置文件的生产部分,以便 Heroku 可以找到正确的数据库。

例如与以下

production:
    adapter: sqlite3
    database: db/production.sqlite3
    pool: 5
    timeout: 5000

然后是 db:migration
$:~/Apps/DancingCupid/DancingCupid$ heroku rake --trace db:migrate

吐出来
rake aborted!
unable to open database file
/app/.bundle/gems/ruby/1.8/gems/activerecord-3.0.5/lib/active_record/connection_adapters/sqlite3_adapter.rb:27:in `initialize'
...

根据我发送用于生产的数据库类型,我可能会收到不同的错误。

除了删除应用程序并创建新应用程序之外,有没有办法解决此问题?

最佳答案

Heroku 肯定会在推送时重写您的 database.yml,因此源代码管理中的内容无关紧要。

要确认这一点,请执行 heroku run bash,它会将您连接到应用程序中的 bash session ,然后查看执行 cat config\database.yml,您将看到他们是如何重写它的。

关于ruby-on-rails - Heroku App 正在读取 database.yml 文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5454924/

10-12 03:56
查看更多