2011-08-17 2 views
4

레거시 DB2/400 데이터베이스 위에 Rails 3.1 응용 프로그램을 개발 중입니다. 레거시 스키마에 대한 더 나은 지원으로 인해 ActiveRecord 대신 DataMapper을 ORM으로 사용하기로 결정했습니다. 응용 프로그램은 JRuby에 배포 될 예정입니다.JRuby에서 DataMapper와 함께 Ruby on Rails 3.1을 DB2/400 데이터베이스와 함께 사용하려면 어떻게해야합니까?

이 경우 DB2 데이터베이스에 액세스하는 가장 좋은 방법은 무엇입니까?

나의 초기 연구에 따르면 JRuby on Rails를 사용하는 주요 판매 포인트 중 하나는 JDBC를 사용하여 지구상에있는 거의 모든 데이터베이스에 액세스 할 수 있기 때문에 사소한 일일 것입니다.

그러나 반드시 그런 것은 아니지만, 특히 JDBC를 통한 DB2 사용을 위해 ActiveRecord 또는 DataMapper/DataObjects에 대한 드라이버가없는 것으로 보입니다.

나만의 드라이버를 작성해야합니까? source code of the various existing DataObjects/DataMapper JDBC drivers을 읽으면서이 숫자가 이 아니어야합니다. 하드가 아니지만 피하기를 좋아합니다.

DataMapper가있는 JRuby on Rails에서 DB2/400을 사용할 준비가 된 솔루션 (라이브러리, 보석, 블로그 포스트, 자습서)이 있습니까? 그렇지 않다면 어떻게해야합니까?

답변

4

에는 DB2에 대한 지원이 내장되어 있습니다. 특정 스키마 문제가 있습니까? ActiveRecord를 여러 레거시 스키마와 함께 사용할 수있게되었습니다.

업데이트은 : 일치하지 않는 테이블 이름에 대한

, 단순히 모델

set_table_name "my_table_name" 

을 넣어. 당신은 relationhip에 사용되는 클래스를 지정, 및/또는 외래 키 수 있습니다

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

(옵션에 대한 자세한 내용은 http://apidock.com/rails/ActiveRecord/Associations/ClassMethods 참조).

복합 기본 키의 경우 Composite Primary Keys 보석을 참조하십시오.

+0

감사합니다. 도움이됩니다. 스키마의 경우 테이블 이름 중 어느 것도 AR 명명 규칙과 일치하지 않으며 관계/외부 키를 포함하는 열 이름도 포함하지 않습니다. 키는'id'라는 이름이 아니며 정수가 아닙니다. 복합 기본 키가 있습니다. –

관련 문제