如何在Heroku上为一个rails应用程序设置多个数据库

时间:2013-10-25 20:25:40

标签: ruby-on-rails ruby-on-rails-3 heroku

我想在一个应用上拥有2个数据库。 来自Connecting Rails 3.1 with Multiple Databases 我知道如何在我的本地机器上设置它,我知道如何通过更改env vars链接到不同的heroku数据库。 但是因为我的database.yml看起来像

development:
    adapter: postgresql
    database: first_database
log_development:
    adapter: postgresql
    database: second_database
production:
    adapter: postgresql

我不知道如何将生产应用程序链接到两个不同的数据库,因为生产从DATABASE_URL env获取数据库的位置。 我需要一个DATABASE_URL2,并告诉生产动态使用env变量。

1 个答案:

答案 0 :(得分:0)

Heroku在部署时重写了database.yml。它使用DATABASE_URL环境变量为您创建database.yml文件。无法添加第二个配置值,该值将在生成的database.yml中创建第二个条目。

有一些方法可以更新数据库配置,以便您可以在本地使用database.yml,并使其在heroku上以您希望的方式工作。将database.yml注入应用程序的一种方法是使用heroku_db_env gem:

https://github.com/skryl/heroku_db_env

您可以将带有其他数据库配置的database.yml移动到gem指定的文件中,然后您就可以像在本地一样在Heroku上的生产中访问它们。