带有章鱼宝石的导轨。如何使用 rake 创建 shards.yml 中定义的数据库

And*_*hyn 5 ruby sharding ruby-on-rails octopus

我需要将我的应用程序配置为使用多个分片,甚至多个数据库适配器。我注意到所有 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:
  ...... 
Run Code Online (Sandbox Code Playgroud)

我的碎片.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:
    ....
Run Code Online (Sandbox Code Playgroud)

只有来自 database.yml 的数据库是用 rake-task 创建的rake db:create

oma*_*ous 1

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