我正在遗留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?如果没有,我该怎么做?
答案 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。