2013-09-26 3 views
0

나는 기존의 오이 및 루비 스위트를 사용하여 개념 증명 증명을 쓰고 있습니다. 이 작업을 수행하는 회사는 Java와 DB2를 포함하는 스택을 가지고 있습니다.ORM에 관한 두 가지 질문과 트랜잭션 전략을 사용한 데이터베이스 정리

현재 데이터베이스를 사용하는 테스트는 테스트 데이터베이스의 성능을 저하시키고 많은 이유로 데이터베이스를 제거하고 이미지 버전으로 교체 할 수 없습니다.

데이터베이스 정리를 위해 트랜잭션 전략을 사용하는 것에 관심이 있습니다. database_cleaner gem을 고려하고 있습니다.

database_cleaner에 ORM이 필요한 것처럼 보입니다. 이 시점에서 스키마에 액세스 할 수 없으며 ActiveRecord는 내 자격 증명으로 필요한 것을 액세스 할 수 없습니다.

두 질문 :

  1. 는 ORM들을 항상 스키마에 대한 액세스가 필요하십니까?
  2. 트랜잭션 전략을 사용하여 데이터베이스를 정리하려면 항상 ORM이 필요합니까?

또한 등 사람이 루비 1.8.7 (NO JRuby를 아직), 창, DB2와 그 일을 사용할 수 있습니다 보석을 알고 있다면 보너스는

+1

본 ORM을 보셨습니까? Sequel, DataMapper 및 Active Record는 Ruby의 큰 세 가지 요소입니다. 그들은 순수한 Ruby이기 때문에 OS 독립적이어야합니다.연결할 수 있는지 여부는 사용하는 드라이버와 시스템에서 컴파일하는지 여부에 따라 다릅니다. –

+1

실제 DB2 데이터베이스를 사용하는 대신 메모리 데이터베이스에서 테스트가 작동합니까? 물론 자신 만의 테스트 데이터를 만들어야합니다. –

+0

@theTinMan 나는 Sequel and Active Record를 시도했다. 후속편은 액티브 레코드 (Active Record)를 사용하려는 것처럼 보였습니다. 나는 아마도 액티브 레코드를 사용해야한다고 생각했다 ... –

답변

1
  1. 으로 ORMs는 항상 스키마에 대한 액세스가 필요하십니까?

스키마? 데이터베이스의 테이블과 관계형 필드와 인덱스의 텍스트 덤프 에서처럼? 아닙니다. 테이블과 테이블의 관계를 설명하는 데이터베이스의 하우스 키핑 데이터를 읽을 수 있어야합니까? 예. 그것이 그들이 모델을 만드는 방법입니다.

  1. 트랜잭션 전략을 사용하여 데이터베이스를 정리하려면 항상 ORM이 필요합니까?

멍청 아. 거래를 지원한다고 가정하면 모든 구식 학교에 가서 해당 DBM의 SQL에 쓸 수 있습니다. ORM을 사용하면 이식성이 향상되고 적절한 SQL을 생성하는 방법을 알기 때문에 작성하기가 훨씬 쉽습니다.

내 ORM에 대해 Sequel을 좋아합니다. 그렇지 않은 경우 원시 데이터를 사용할 수 있기 때문에 원시 데이터를 사용할 수 있습니다. 그렇지 않은 경우 "데이터 세트"또는 전체 모델 및 관계형 정보와 함께 사용할 수 있습니다. 게다가, 그것은 쉽게 확인할 수있는 아주 멋진 SQL을 생성합니다. 나는 그것을 매우 추천한다.

Active Record은 레일스와 함께 제공되며 아마도 Ruby와 가장 많이 사용되는 ORM 일 것입니다. 그것이 최선이라는 뜻은 아니지만 의견의 문제이지만 일반적입니다. 활성 레코드는 Rails 사용과 분리되어 있지 않습니다. 정기적 인 Ruby 앱에서도 사용할 수 있습니다.하지만 약간의 변화가있을 수 있습니다. 레일즈 레이어가없는 레거시 데이터베이스에 루비를 묶기 위해 과거에 사용 해왔다.

잠시 동안 DataMapper을 사용하지 않았지만 사용하고있을 때 좋았다고 생각합니다. 모든 사람의 뇌는 데이터를 다르게 동화하고 서로 다른 API를 선호하므로 ORM이 다양하기 때문에 다른 사람들이 기꺼이 가지 않는 곳으로 뇌가 흘러 들어갈 수 있습니다.

+0

고마워, 주석 남자, 나는 정말로 내가 속편을 다시 시도 할 수 있다고 생각한다. 혹시 DB2와 함께 사용해 보셨습니까? –

+0

DB2와 함께 사용하지는 않았지만 DB2를 사용하지 않기 때문입니다. [DB2는 지원됩니다] (http://sequel.rubyforge.org/rdoc-adapters/classes/Sequel/DB2.html). 필자는 리눅스에서 TinyTDS와 ODBC를 통해 Sybase와 MSSQL을 공격하기 위해이 도구를 사용했습니다. 드라이버의 작동을 얻는 것은 어려운 부분 이었지만 Sequel을 사용하면 멋지게 작동했습니다. –