在gem中使用内存数据库

时间:2012-03-06 01:08:48

标签: mysql ruby-on-rails ruby sqlite gem

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

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

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

似乎有可能,因为ActiveRecord :: Base文档中有一节标题为:Connection to multiple databases in different models

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

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

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

非常感谢

1 个答案:

答案 0 :(得分:0)

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

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

再次感谢。