使用不同模式的多个数据库的Rake任务

Pau*_*aul 9 ruby-on-rails rake-task

我正在开发一个多数据库Rails 3应用程序.每个数据库都有不同的模式(并且在生产中位于不同的位置).我已经将应用程序设置为与不同的数据库通信,如下所示:

database.yml的

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: main_development
  pool: 5
  username: someuser
  password: somepassword
  socket: /tmp/mysql.sock

other_development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: other_development
  pool: 5
  username: someuser
  password: somepassword
  socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

车型/ other_base.rb

class OtherBase < ActiveRecord::Base
  self.abstract_class = true
  establish_connection "other_#{Rails.env}"
end
Run Code Online (Sandbox Code Playgroud)

车型/ some_model.rb

class SomeModel < OtherBase
  # Regular stuff here
end
Run Code Online (Sandbox Code Playgroud)

现在,这适用于Web应用程序,但不太适合运行rake任务,包括测试(夹具未正确加载).有没有可用的宝石?任何帮助赞赏.

此外,创建一个可以处理不同数据库的不同模式的schema.rb文件会很好 - 也就是说,允许我执行rake db:create或db:setup之类的操作并让它使用数据库创建多个数据库特定的架构.

Kyl*_*cey 0

您可以尝试loopy多个数据库插件。它似乎允许轻松指定不同的耙子配置