我如何配置 database.yml 以便 rake db:create 创建多个数据库?
How do I configure database.yml so that rake db:create creates multiple databases?
我定义了以下 database.yml 配置
adapter_default: &adapter_default
adapter : mysql2
encoding: utf8
default: &default
<<: *adapter_default
database: <%= Rails.application.secrets.database_name %>
host : <%= Rails.application.secrets.database_host %>
username: <%= Rails.application.secrets.database_user %>
password: <%= Rails.application.secrets.database_password %>
port : <%= Rails.application.secrets.database_port %>
development:
<<: *default
test:
<<: *default
staging:
<<: *default
production:
<<: *default
pool: <%= Rails.application.secrets.database_connection_pool_size || 5 %>
read_replica:
<<: *adapter_default
database: <%= Rails.application.secrets.replica_database_name %>
host : <%= Rails.application.secrets.database_host %>
username: <%= Rails.application.secrets.database_user %>
password: <%= Rails.application.secrets.database_password %>
port : <%= Rails.application.secrets.database_port %>
但是,当我 运行 rake db:create 时,只创建了 Rails.application.secrets.database_name 中定义的数据库。 read_replica 数据库根本没有创建!
但是当我 运行 rake db:create:all 时,会创建 read_replica 数据库。但是,我不希望为所有环境创建数据库。
我确定我的 database.yml 文件的结构缺少一些东西。
我正在使用 Rails 4.2.6.
您可以使用
创建单独的数据库
RAILS_ENV=staging rake db:create
我定义了以下 database.yml 配置
adapter_default: &adapter_default
adapter : mysql2
encoding: utf8
default: &default
<<: *adapter_default
database: <%= Rails.application.secrets.database_name %>
host : <%= Rails.application.secrets.database_host %>
username: <%= Rails.application.secrets.database_user %>
password: <%= Rails.application.secrets.database_password %>
port : <%= Rails.application.secrets.database_port %>
development:
<<: *default
test:
<<: *default
staging:
<<: *default
production:
<<: *default
pool: <%= Rails.application.secrets.database_connection_pool_size || 5 %>
read_replica:
<<: *adapter_default
database: <%= Rails.application.secrets.replica_database_name %>
host : <%= Rails.application.secrets.database_host %>
username: <%= Rails.application.secrets.database_user %>
password: <%= Rails.application.secrets.database_password %>
port : <%= Rails.application.secrets.database_port %>
但是,当我 运行 rake db:create 时,只创建了 Rails.application.secrets.database_name 中定义的数据库。 read_replica 数据库根本没有创建! 但是当我 运行 rake db:create:all 时,会创建 read_replica 数据库。但是,我不希望为所有环境创建数据库。 我确定我的 database.yml 文件的结构缺少一些东西。 我正在使用 Rails 4.2.6.
您可以使用
创建单独的数据库RAILS_ENV=staging rake db:create