如何在JRuby上使用带有DataMapper的Ruby on Rails 3.1和DB2 / 400数据库?

时间:2011-08-17 14:37:08

标签: ruby-on-rails ruby jdbc db2 jruby

我正在遗留DB2 / 400数据库之上开发一个Rails 3.1应用程序。由于对遗留模式的更好支持,我选择使用DataMapper而不是ActiveRecord作为ORM。该应用程序将部署在JRuby

在这种情况下访问DB2数据库的最佳方法是什么?

我最初的研究表明,这将是微不足道的,因为使用JRuby on Rails的一个主要卖点就是你获得了JDBC,因此可以访问这个星球上几乎任何数据库。

但是,似乎并不一定如此,特别是,似乎没有任何ActiveRecord或DataMapper / DataObjects驱动程序可以使用DB2 over JDBC。

我必须自己编写驱动程序吗?从阅读source code of the various existing DataObjects/DataMapper JDBC drivers开始,这不应该很难,但这是我宁愿避免的。

是否有任何现成的解决方案(库,宝石,博客文章,教程)使用带有DataMapper的JRuby on Rails和DB2 / 400?如果没有,我该怎么做?

1 个答案:

答案 0 :(得分:4)

activerecord-jdbc-adapter内置了对DB2的支持。您有特定的架构问题吗?我已经能够使用ActiveRecord来处理几个遗留模式。

更新

对于不匹配的表名,只需输入

即可
set_table_name "my_table_name"

在模型中。您可以指定关系中使用的类和/或外键:

has_many :somethings, :class_name => 'something_else', :foreign_key => 'something_else_id'

(有关更多选项,请参阅http://apidock.com/rails/ActiveRecord/Associations/ClassMethods)。

对于复合主键,请参阅Composite Primary Keys gem。