我对RoR很新,而且我无法理解如何在我的Rails 4.1.4应用程序中正确设置和使用Heroku Postgres。我在Ubuntu 14.04.1 LTS上。
我希望有用于开发和测试的本地PostgreSQL数据库,以及用于生产的Heroku Postgres数据库。
这是我到目前为止所达到的目标:
pg
gem 我更改了config/database.yml
文件:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
timeout: 5000
username: franklin
password:
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
url: <%= ENV["DATABASE_URL"] %>
我从here知道,Heroku不再为Rails 4.1.x应用程序覆盖config/database.yml
,而且我应该(必须?)在生产条目中指定DATABASE_URL
。
我运行rake db:create:all
创建了我的本地开发和测试数据库,然后rake db:migrate
git commit
更改,然后使用git push heroku master
heroku run rake db:migrate
并收到以下消息:Running rake db:migrate attached to terminal... up, run.1227
(我不确定这意味着什么?)heroku restart
然后,当我连接到我的开发数据库时,我可以看到rake db:migrate
命令创建的新表,以及我在localhost:3000中运行我的应用程序故意创建的新数据(表单提交) 。我得到了完全预期的行为。
但是当我连接到我的Heroku Postgres生产数据库时,应该由heroku run rake db:migrate
命令创建的新表不存在。当我向不存在的表(表单提交)添加数据时,我的Heroku应用程序不会崩溃。
以下是我的问题:
config/database.yml
?任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
您需要转到https://postgres.heroku.com/databases
找到您应用的数据库,您将找到适合您数据库的密钥。您可以将这些内容作为配置变量上传,然后将其加载到database.yml
查看figaro以便更轻松地处理配置变量。