我需要配置我的应用程序以使用多个分片,甚至多个数据库适配器。我注意到像 rake db:migrate
这样的所有 rake 命令都在工作,并且对 shards.yml 中定义的分片有影响,rake db:create
除外。
手动创建所有这些将是一个真正的痛苦。
我怎样才能让它发挥作用?
我的database.yml(我这里定义了,只有我的master shard)
development:
adapter: postgresql
host: localhost
encoding: unicode
database: db_workload_master_development
pool: 5
username:
password:
production:
......
我的分片.yml
octopus:
environments:
- production
- development
development:
shards:
mysql:
host: localhost
adapter: mysql2
database: db_workload_mysql_shard_development
sqlite:
host: localhost
adapter: sqlite3
database: db_workload_sqlite_shard_development
pg:
host: localhost
adapter: postgresql
database: db_workload_pg_shard_development
pool: 5
username:
password:
production:
....
只有来自 database.yml 的数据库是使用 rake-task rake db:create
创建的。
最佳答案
我建议创建您自己的 rake 任务,该任务将读取 shards.yml 并根据需要创建数据库。
关于ruby-on-rails - 带有 Octopus gem 的 Rails。如何使用 rake 创建在 shards.yml 中定义的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845141/