八达通宝石的导轨。如何使用rake创建在shards.yml中定义的db

时间:2014-02-18 05:33:35

标签: ruby-on-rails ruby sharding octopus

我需要配置我的应用程序以使用多个分片,甚至多个数据库适配器。我注意到像rake db:migrate这样的所有rake命令都在工作,并且对除了rake db:create之外的shards.yml中定义的分片有影响。 手动创建所有这些将是一个真正的痛苦。 我怎样才能使它发挥作用?

我的database.yml(我在这里定义了,只有我的主分片)

development:
  adapter:  postgresql
  host:     localhost
  encoding: unicode
  database: db_workload_master_development
  pool:     5
  username: 
  password: 

production:
  ...... 

我的shards.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:
    ....

只使用rake-task rake db:create创建来自database.yml的db。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我认为使用诸如db之类的分片耙任务的章鱼宝石

尝试rake shards:create