如何在Rails中设置默认数据库?

时间:2013-10-28 14:37:19

标签: ruby-on-rails ruby-on-rails-4 environment multiple-databases

我有一个使用两个数据库的应用程序。现在我有开发环境。如何在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

1 个答案:

答案 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

请注意,这种新环境可能会破坏某些仅适用于stagingtestproductiondevelopment的宝石。