0

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

1 回答 1

0

您需要设置一个单独的环境。默认情况下,在新项目中 rails 会设置测试、生产和开发。您需要设置 development_2 或 staging 或任何充分描述您正在做的事情。

在您的 Rails 项目中,config/environments将开发文件复制到一个新文件,该文件的名称与您的环境使用的名称相同。

然后在您的database.yml文件中,确保有一个名为匹配每个环境的条目。所以如果你有 development 和 development_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 应用程序时,它将处于开发状态,因此已经development从 yml 文件中选择了数据库。

现在,当您想在替代环境中运行时,您只需告诉 rails env is development_2,如果您使用该rails server命令,它将改为

rails server -e development_2

请注意,这个新环境可能会破坏某些难以被卡为仅适用于stagingtestproduction的宝石development

于 2013-10-28T14:59:51.850 回答