ruby-on-rails - 带有 Octopus gem 的 Rails。如何使用 rake 创建在 shards.yml 中定义的数据库

标签 ruby-on-rails ruby sharding octopus

我需要配置我的应用程序以使用多个分片,甚至多个数据库适配器。我注意到像 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/

相关文章:

ruby-on-rails - Ubuntu 上的 Ruby Gem Guard,没有 'guard' 命令

ruby - 检查用户主目录中是否存在文件

php - 将 PHP 应用程序与 MySQL Fabric 连接(使用 php 感知连接器)

如果选择标记分片键,MongoDB 仅将数据存储到主分片

ruby-on-rails - 尝试加载 gem 'yard' 时出错

ruby-on-rails - rails : How do I change my database from SQLite to PG while in Development?

ruby-on-rails - 如何从 Rails 4 中的多个非关联(非嵌套)模型创建一个表单?

ruby-on-rails - 将不同的 HTML5 格式应用于嵌套在数组中的散列中的键值

ruby - URI.escape 和 CGI​​.escape 有什么区别?

Mongodb:向集群添加新分片会增加集群的负载