连接到两个 sqlserver 数据库时,ActiveRecord::Base 不属于从 ActiveRecord 降序的层次结构

卡洛斯·罗克

我在非 Rails 应用程序上使用 ActiveRecord。我使用这种方法连接到两个 SQLserver 数据库

class MyBase > ActiveRecord::Base
  this.abstract_class = true
end
class Order > MyBase
end
class MyBase2 > ActiveRecord::Base
  this.abstract_class = true
end
class Order2 > MyBase2
end

然后通过调用连接到数据库

MyBase.establish_connection(config1)
MyBase2.establish_connection(config2)

这在 AR3 中效果很好,但我正在迁移到 AR4,什么时候做这样的事情

puts Order.last.inspect
puts Order2.last.inspect 

我在第二次看跌期权时遇到此错误,第一次调用按预期工作。

ActiveRecord::ActiveRecordError: ActiveRecord::Base doesn't belong in a hierarchy descending from ActiveRecord

如果我交换呼叫,那么过去失败的那个可以工作,而那个成功的失败。所以这似乎是切换连接的问题,如果我使用 mysql 或 pg 数据库,它似乎只会影响使用 activerecord-sqlserver-adapter 的连接这个问题不会发生任何帮助将不胜感激

卡洛斯·罗克

所以这是一个奇怪的问题。我不得不将连接逻辑迁移到基类中。出于某种原因,第二次调用 created_connection 使 AR4“忘记”了第一个建立连接。这很奇怪,因为这是在 AR3 上工作的。我的模型现在看起来像这样

头等舱

class MyBase > ActiveRecord::Base
  this.abstract_class = true
  begin
    # try the rails ways first
    establish_connection(:database1_name)
  rescue
    # this is probably a ruby app (non-rails)
    config_file = nil

    # do we have a database file?
    if File.exist?('config/database.yml')
      config_file = 'config/database.yml'
    end
    # return if we could not find a config_file
    return if config_file.nil?

    dbconfig = YAML::load(File.open(config_file))
    establish_connection(dbconfig[:database1_name])
  end
end

class Order > MyBase
end

二基类

class MyBase2 > ActiveRecord::Base
  this.abstract_class = true
  begin
    # try the rails ways first
    establish_connection(:database2_name)
  rescue
    # this is probably a ruby app (non-rails)
    config_file = nil

    # do we have a database file?
    if File.exist?('config/database.yml')
      config_file = 'config/database.yml'
    end
    # return if we could not find a config_file
    return if config_file.nil?

    dbconfig = YAML::load(File.open(config_file))
    establish_connection(dbconfig[:database2_name])
  end
end
class Order2 > MyBase2
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ActiveRecord::Base.establish_connection 连接到错误的数据库

来自分类Dev

EF在数据库中创建一个关系ID列,该列不属于模型

来自分类Dev

将两个不属于数据帧的变量传递给R中的facet_grid()

来自分类Dev

当参数类型不属于一组类型时,阻塞一个函数

来自分类Dev

xslt 不属于列表时选择

来自分类Dev

“逻辑文件“电影”不属于数据库”

来自分类Dev

ActiveRecord数据库连接的回调?

来自分类Dev

ActiveRecord尝试使用rbenv连接到错误的数据库

来自分类Dev

Castle ActiveRecord未连接到数据库

来自分类Dev

消除不属于单个连接网络的行对

来自分类Dev

在视图中包括不属于数据模型的字段

来自分类Dev

结构中的成员不属于任何类型吗?和一个持有一个孤独变量的结构

来自分类Dev

如何防止用户在SQL Server Management Studio中看到不属于他的数据库?

来自分类Dev

为什么数据库之间的关系不属于迁移文件?

来自分类Dev

Access数据库表不断获取不属于它们的汉字

来自分类Dev

如何在使用ActiveRecord和多个线程时管理打开和关闭数据库连接

来自分类Dev

Javascript / Jquery-如何替换一个单词,但仅当不属于另一个单词时才替换?

来自分类Dev

在为“多对一”关系建模时,如何处理“多”侧不属于“一个”侧任何记录的记录?

来自分类Dev

ActiveRecord是否按模型建立新的数据库连接

来自分类Dev

在公共属性上连接两个ActiveRecord关联

来自分类Dev

在公共属性上连接两个ActiveRecord关联

来自分类Dev

一个或两个数字的正则表达式模式,不属于4数字组

来自分类Dev

Spring安全性和Spring数据:安全访问不属于当前用户的数据

来自分类Dev

是否有不属于C ++标准库的STL标头?

来自分类Dev

为什么默认情况下.gitignore不属于存储库?

来自分类Dev

创建<input>元素时,添加后的onchange不属于该元素

来自分类Dev

选择不属于返回的接口类型的属性时,TypeScript编译错误

来自分类Dev

使用C#在DataRow中获取结果时,列名不属于表

来自分类Dev

当文件不属于项目时,在Eclipse中突出显示变量

Related 相关文章

  1. 1

    ActiveRecord::Base.establish_connection 连接到错误的数据库

  2. 2

    EF在数据库中创建一个关系ID列,该列不属于模型

  3. 3

    将两个不属于数据帧的变量传递给R中的facet_grid()

  4. 4

    当参数类型不属于一组类型时,阻塞一个函数

  5. 5

    xslt 不属于列表时选择

  6. 6

    “逻辑文件“电影”不属于数据库”

  7. 7

    ActiveRecord数据库连接的回调?

  8. 8

    ActiveRecord尝试使用rbenv连接到错误的数据库

  9. 9

    Castle ActiveRecord未连接到数据库

  10. 10

    消除不属于单个连接网络的行对

  11. 11

    在视图中包括不属于数据模型的字段

  12. 12

    结构中的成员不属于任何类型吗?和一个持有一个孤独变量的结构

  13. 13

    如何防止用户在SQL Server Management Studio中看到不属于他的数据库?

  14. 14

    为什么数据库之间的关系不属于迁移文件?

  15. 15

    Access数据库表不断获取不属于它们的汉字

  16. 16

    如何在使用ActiveRecord和多个线程时管理打开和关闭数据库连接

  17. 17

    Javascript / Jquery-如何替换一个单词,但仅当不属于另一个单词时才替换?

  18. 18

    在为“多对一”关系建模时,如何处理“多”侧不属于“一个”侧任何记录的记录?

  19. 19

    ActiveRecord是否按模型建立新的数据库连接

  20. 20

    在公共属性上连接两个ActiveRecord关联

  21. 21

    在公共属性上连接两个ActiveRecord关联

  22. 22

    一个或两个数字的正则表达式模式,不属于4数字组

  23. 23

    Spring安全性和Spring数据:安全访问不属于当前用户的数据

  24. 24

    是否有不属于C ++标准库的STL标头?

  25. 25

    为什么默认情况下.gitignore不属于存储库?

  26. 26

    创建<input>元素时,添加后的onchange不属于该元素

  27. 27

    选择不属于返回的接口类型的属性时,TypeScript编译错误

  28. 28

    使用C#在DataRow中获取结果时,列名不属于表

  29. 29

    当文件不属于项目时,在Eclipse中突出显示变量

热门标签

归档