2014-07-04 3 views
6

모델을 변경하면서 AR 마이그레이션을 만들어야합니까? Mongoid와 MongoDB를 사용하고 있으므로 어떤 이점도 보이지 않습니다. 내가 생각할 수있는 유일한 이점은 필드의 이름을 바꾸는 것뿐입니다.하지만 작은 스크립트로도 할 수 있습니다. 그것도 작동합니까? 내 직감은 내가 이주 할 필요가 없다고 말하고 있지만 더 많은 경험을 가진 사람의 말을 듣고 싶습니다.Rails/Mongoid/MongoDB와의 마이그레이션은 의미가 있습니까?

가장 좋은 방법은 무엇입니까? MongoDB에서 마이그레이션을 사용해야합니까?

+2

PHP에서 Yii를 사용하여 배웠던 것처럼 여전히 네이티브 마이그레이션을 수행하며 많은 사람들이 MongoDB와 함께 마이그레이션 스크립트를 사용하기위한 시나리오를 가지고 있습니다. MongoDB Yii ext에 추가해야했습니다. – Sammaye

+0

@Sammaye 그 시나리오는 무엇입니까? – xx77aBs

+2

한 가지 시나리오는 표준화와 관련된 것이 었습니다. 응용 프로그램에서이 일을 처리 할 때의 문제는 버그가 있고 더러운 코드를 얻는 것입니다. 데이터베이스에서이 작업을 수행하면 해당 문제가 해결됩니다. 또 다른 것은 Yii에서 기능을 변경하기로 결정한 때입니다. 저에게 Yii 공개 토론에 저에게 자세를 취한 또 다른 것이 있었기 때문에 마음이 바뀌었지만 지금은 완전히 기억할 수는 없습니다. – Sammaye

답변

8

MongoDB는 (2.6에서와 같이) 서버 측 스키마 적용을 제공하지 않으므로 데이터 마이그레이션 스크립트가 반드시 필요한 것은 아닙니다. 이것은 특히 개발 속도에 도움이 될 수 있습니다.

그러나 좋은 "데이터 위생"을 연습하고 다른 배포간에 일관성을 유지하려는 경우 프로덕션 데이터의 마이그레이션을 만드는 것이 좋습니다.

:

  • 제거 미사용 필드
  • 새로운 필수 필드를
  • 설정 기본값
  • 개명 필드를 추가하면
  • 로드 데이터/비품
  • 보장 요구 인덱스
  • 필요

위의 작업 중 하나를 일회용 스크립트로 수행하거나 애플리케이션 코드에서 예외 사례를 처리 할 수 ​​있습니다. 예를 들어 편집을 위해 문서가 데이터베이스에서로드 될 때 누락 된 필드 또는 기본값을 지연 추가 할 수 있습니다.

몽고 이드의 경우 특히 mongoid_rails_migrations 보석을 사용해보십시오.

1

몽고 DB 문서는 스키마가 없으므로 마이그레이션이 필요하지 않습니다. 당신은처럼 mongoid 모델의 필드를 정의 할 수 있습니다 :

field :name, type: String

지원 필드의 mongoid documentation을 확인합니다.

관련 문제