如何使用RAKE在Shards.yml中创建数据库?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我需要使用多个shards配置我的应用程序,甚至多个db适配器。我注意到所有的rake命令rake db:migrate正在工作,并对Shards.yml中定义的shards产生影响,手动创建所有rake db:create将是一个真正的痛苦。我怎么才能让它起作用?

我的database.yml(我已经在这里定义了,只有我的主shard)

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:
    ....

只有database.yml中的db是用rake-taskrake db:create创建的。

提问于
用户回答回答于
用户回答回答于

我建议创建你自己的rake任务,它将读取scds.yml并创建db。

扫码关注云+社区

领取腾讯云代金券