2011-03-06 2 views
0

레일스 3 표준 스키마와 일치하지 않는 기존 데이터베이스의 테이블에서 데이터를 읽으려면 레일즈 3을 어떻게 사용합니까?Ruby on Rails 3, Sequel, 기존 데이터베이스 탭하기

필자는 후편 보석을 시작하기에 좋은 장소라고 들었지만 그 이상은 아닙니다.

구체적인 :

  • 그것은 오라클 데이터베이스입니다. 이미 연결을 설정했으며 마이그레이션 및 롤백이 제대로 작동하는지 확인했습니다.
  • 필자는 필요한 테이블과 관련 칼럼에 대한 스캐 폴드를 생성했습니다.
  • 관련 테이블과 열을 지정하고 매핑하는 방법을 찾고 있습니다.
  • Sequel없이이 작업을 수행 할 수 있습니까?

답변

0

후계자는 이에 대한 탁월한 보석입니다. 레거시 데이터베이스를 다룰 때 가장 먼저 선택합니다.

오라클 데이터베이스입니다. 이미 연결을 설정했으며 마이그레이션 및 롤백이 제대로 작동하는지 확인했습니다.

데이터베이스가 엔터프라이즈에 있고 프로덕션 중이며 다른 응용 프로그램에서 사용중인 경우 마이그레이션을 사용할 때 매우주의해야합니다. 나는 당신이 데이터베이스 개발에 대해서도 책임이있다면 그것들을 사용하는 것, 그리고 심지어는 조심할 것을 권하고 싶다.

필자는 필요한 테이블과 관련 컬럼에 대한 스캐 폴드를 생성했습니다.

스캐 폴드가 뜻하는 양식입니까?

관련 테이블과 열을 지정하고 매핑하는 방법을 찾고 있습니다.

Sequel은 매우 유연하며 원시 SQL을 사용하거나 모델을 사용하거나 둘 사이에서 작업 할 수 있습니다. 당신이 테이블에 "숟가락"라는 한과에 연결 한 경우 :

DB[:spoons] 

테이블에 액세스 할 수있는 데이터 세트를 생성합니다. 당신이 등 어디 조항, 선택, 주문을 추가 할 수 있습니다 거기에서

또 다른 방법은 액티브 유사한 모델을 사용하는 것입니다

모두에 대한 접근과 테이블의 기록의 모델을 만들어
class Spoon < Sequel:Model 
end 

전지.

Sequel은 ActiveRecord와 같이 기본 색인 이름 "id"에 대한 가정을하지만 필요한 경우 변경할 수 있습니다.

두 가지 방법 모두 매우 강력하며 필드 및 해당 유형의 자동 검색을 사용하는 데이터베이스와 잘 작동합니다.

The README은 알아야 할 사항에 대한 개요입니다.

또한 Jeremy Evans는 개발자이며 기술적 인 질문을 할 경우 대단히 반응합니다.

이 작업은 속임수없이 수행 할 수 있습니까?

물론. ActiveRecord는 모델을 사용하여 작동하지만 키/테이블 이름이 미리 결정되거나 예상 된 이름을 충족시키지 않으면 키 또는 테이블의 이름을 말해야 할 수 있습니다.