5

我需要将我的应用程序配置为使用多个分片,甚至多个数据库适配器。我注意到所有像这样的 rake 命令rake db:migrate都在工作,并且会对 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 中的 db 是使用 rake-task 创建的rake db:create

4

2 回答 2

1

我建议创建您自己的 rake 任务,该任务将读取 shards.yml 并根据需要创建数据库。

于 2014-02-18T06:10:25.623 回答
-1

我认为 Octopus gem 使用像 db 这样的 shards rake 任务

尝试rake shards:create

于 2018-08-11T18:42:37.833 回答