我有一个使用两个数据库的应用程序。现在我有开发环境。如何在Rails中默认为每个环境设置数据库? 我的database.yml看起来像:
database1_dev:
adapter: mysql2
host: localhost
database: db1
user: root
password: asdf
pool: 5
timeout: 5000
database2_dev:
adapter: mysql2
host: localhost
database: db2
user: root
password: asdf
pool: 5
timeout: 5000
答案 0 :(得分:0)
您需要设置一个单独的环境。默认情况下,新项目rails设置测试,生产和开发。您需要设置development_2或staging或任何适当描述您正在做的事情。
在config/environments
的rails项目中,将开发文件复制到一个新文件,其中包含您用于环境的名称。
然后在您的database.yml
文件中,确保有一个名称匹配每个环境的条目。因此,如果您有开发和开发2,那么您的条目应为:
development:
adapter: mysql2
host: localhost
database: db1
user: root
password: asdf
pool: 5
timeout: 5000
development_2:
adapter: mysql2
host: localhost
database: db2
user: root
password: asdf
pool: 5
timeout: 5000
默认情况下,当您运行rails应用程序时,它将处于开发阶段,因此已经从您的yml文件中选择了development
数据库。
现在,当您想要在另一个环境中运行时,您只需告诉我,env是development_2
,如果您使用的是rails server
命令,那么它将是
rails server -e development_2
请注意,这种新环境可能会破坏某些仅适用于staging
,test
,production
和development
的宝石。