首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >establish_connection似乎不支持连接

establish_connection似乎不支持连接
EN

Stack Overflow用户
提问于 2010-12-07 00:49:30
回答 1查看 1.3K关注 0票数 5

我正在尝试将我的用户帐户和会话数据移动到一个单独的数据库中,以便我们最终能够在多个应用程序之间共享它。

我在网上见过很多人说要用establish_connection告诉一个模型连接到另一个数据库,但我无法让它起作用。

config/database.yml

代码语言:javascript
运行
复制
development:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  pool: 5
  host: localhost
  database: project_name_development

authentication:
  adapter: mysql2
  encoding: utf8
  reconnect: true
  pool: 5
  host: localhost
  database: authentication

app/models/user.rb

代码语言:javascript
运行
复制
class User < ActiveRecord::Base
  establish_connection :authentication
  has_one :person
end

app/models/person.rb

代码语言:javascript
运行
复制
class Person < ActiveRecord::Base
  belongs_to :user
end

这么多似乎正在起作用:

代码语言:javascript
运行
复制
> User.connection.instance_eval { @config[:database] }
=> "authentication"
> Person.connection.instance_eval { @config[:database] }
=> "project_name_development"

我可以孤立地查询User

代码语言:javascript
运行
复制
> User.where(:admin => true)
=> [ ... lots of results .. ]

但是,一旦我尝试使用join,它就会中断:

代码语言:javascript
运行
复制
> User.joins(:person)
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'authentication.people' doesn't exist: SELECT `users`.* FROM `users` INNER JOIN `people` ON `people`.`user_id` = `users`.`id`

ARel似乎在使用当前数据库,而不是通过反射获得正确的数据库。

我发现了大约两年前关于这个问题的这个很旧的错误报告,但是我几乎可以肯定它是关于旧的ARel语法的,而且我真的很怀疑代码示例是否能继续工作。

这有可能吗?

Update:通过这样做取得了一些进展:

代码语言:javascript
运行
复制
User.joins("INNER JOIN project_name.people ON project_name.people.user_id = authentication.users.id")

但这真的很乏味,我想加入的一个表是多态表。

我试着补充:

代码语言:javascript
运行
复制
set_table_name 'project_name.people'

但那又回来了

代码语言:javascript
运行
复制
NoMethodError: undefined method `eq' for nil:NilClass

在我看来,Rails3实际上并不支持多个模式。我说错了吗?

EN

回答 1

Stack Overflow用户

发布于 2011-01-20 22:20:55

您是否考虑过将其从应用程序层中删除,只使用MySQL复制来复制某些表?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4372429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档