据我所知,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/