首页 文章

在gem中使用内存数据库

提问于
浏览 1848
0

我正在编写一个gem,它可以对plist文件进行一些复杂的解析/组合 .

我认为使用ActiveRecord接口并将“结构”构建为内存数据库是有意义的 .

宝石本身很好用 . 但是,我希望能够将它合并到Rails项目中 . 问题是我的gem在ActiveRecord :: Base上调用了establish_conneciton,它杀死了Rails应用程序之前的任何连接 .

它似乎有可能,因为ActiveRecord :: Base文档中有一个 Headers 为:Connection to multiple databases in different models的部分

这意味着您可以从ActiveRecord :: Base继承子类并在其上调用establish_connection . 问题是您无法定义架构,因为ActiveRecord :: Schema.define使用当前在Base上设置的连接 .

我认为这样做的唯一方法可能是将表构建到包含gem的Rails应用程序中 . 如果我能帮助它,我宁愿不去那条路 . 有任何想法吗?

如果我没有说清楚,你可以查看我的gem here的数据库设置文件 .

非常感谢

1 回答

  • 0

    感谢您的评论 . Andrew Marshall:在这种情况下,我的表是临时的,仅供内存使用 .

    我找到了一个可能对任何偶然发现这个问题的人有用的解决方案:Switching connection on ActiveRecord::Schema

    再次感谢 .

相关问题