Как использовать Ruby on Rails 3.1 с DataMapper на JRuby с базой данных DB2 / 400? - PullRequest
2 голосов
/ 17 августа 2011

Я занимаюсь разработкой приложения Rails 3.1 поверх устаревшей базы данных DB2 / 400. Из-за лучшей поддержки устаревших схем я решил использовать DataMapper вместо ActiveRecord в качестве ORM. Приложение будет развернуто на JRuby .

Каков наилучший способ доступа к базе данных DB2 в этом случае?

Мое первоначальное исследование показало, что это будет тривиально, поскольку одним из основных преимуществ продажи JRuby on Rails является то, что вы получаете JDBC и, таким образом, получаете доступ практически ко всем базам данных на планете.

Однако, похоже, что это не обязательно так, в частности, похоже, что нет никаких драйверов ни для ActiveRecord, ни для DataMapper / DataObjects для использования DB2 поверх JDBC.

Должен ли я написать свой собственный драйвер? Из чтения исходного кода различных существующих драйверов DataObjects / DataMapper JDBC , это не должно быть слишком сложным, но я бы предпочел этого избегать.

Существует ли какое-либо готовое решение (библиотека, гем, запись в блоге, учебное пособие) для использования DB2 / 400 с JRuby on Rails с DataMapper? Если нет, то как мне это сделать?

1 Ответ

4 голосов
/ 19 августа 2011

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).

Составные первичные ключи см. В Составные первичные ключи gem.

...