我正在将我的项目从 rails 3.0.9 升级到 rails 3.2.5。我正在使用多个数据库,当在 rails 3.2.5 中运行迁移时,一切运行正常,但它是在默认数据库而不是相应数据库中创建的。
我认为这是连接池的问题,但连接池的错误已针对 rails 3.1.x 修复
这些是我的模型:
class Account < ActiveRecord::Base
establish_connection :accounts
end
class Patient < ActiveRecord::Base
end
:accounts 它是与其他数据库的连接,而其他类使用默认连接:
这是我的 database.yml(我正在使用外部文件,因此我可以在不更改代码的情况下修改数据库连接)。
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: <%= database_config_file['database_dev'] %>
pool: 5
username: <%= database_config_file['username'] %>
password: <%= database_config_file['password'] %>
socket: /var/lib/mysql/mysql.sock
accounts:
adapter: mysql2
encoding: utf8
reconnect: false
database: <%= database_config_file['database_account'] %>
pool: 5
username: <%= database_config_file['username'] %>
password: <%= database_config_file['password'] %>
socket: /var/lib/mysql/mysql.sock
这是我的课程迁移:
class CreateAccounts < ActiveRecord::Migration
def self.connection
Account.connection #Account model has a connection to the database I want
end
...
end
希望有人可以帮助