2011-11-10 4 views
5

schema.rb을 수동으로 분할하는 것 외에 rails db 마이그레이션 파일을 테이블 당 하나의 파일로 병합하는 좋은 방법이 있습니까?db/migration 파일 병합

대부분의 마이 그 레이션 파일은 개발 중에 생성되었으며 실제 데이터가 변경되지는 않습니다. 역사적인 이유로 이러한 파일은 소스 제어 시스템에서 계속 액세스 할 수 있습니다. 불필요한 파일을 보관하는 것이 불편합니다.

답변

-4

고민하지 마세요. 이전 마이그레이션 파일은 아무런 해를 끼치 지 않고 유지 관리가 더 쉬워 질 수 있습니다. 그대로 둡니다.

+0

마이 그 레이션이 실제 데이터 변경을 나타내는 경우에만 유지 관리가 쉬워지며, 그렇지 않습니다. – guiding5

+0

마이그레이션 파일은 * 스키마 * 변경 사항을 나타내야하며 데이터 변경 사항은 변경되지 않습니다. 없애고 싶은 샘플 마이그레이션을 게시 할 수 있습니까? –

+0

관련없는 것으로 많은 열을 삭제하고 불필요한 색인, 열 이름 바꾸기 등을 제거합니다. – guiding5

13

음, 나는 깨끗한 시작을 원한다고 생각할 수 있습니다. 첫 번째 버전의 프로젝트 개발 모드에서 모든 별도의 마이그레이션 파일을 원하지는 않습니다. 그들은 분명히 다칠 수는 없지만.

기본적으로 수행 할 수있는 작업은 다음과 같습니다.

먼저 스키마와 데이터를 백업하십시오.

db/schema.rb에는 최신 스키마 버전이 포함되어 있거나 포함해야합니다. 그렇지 않으면 다음을 실행하십시오.

rake db:schema:dump 

이제 마이그레이션 폴더를 정리할 수 있습니다.

rake db:drop 
rake db:schema:load 

마지막 명령은 DB/schema.rb를 실행하고 새로운 스키마를 만들 :

그런 다음 실행합니다. 이렇게하면 데이터베이스의 마지막 버전으로 이동하게됩니다.

쇼 DB 작업

레이크 -T DB를

+0

레이크 (rake)는 " 'schema': drop ''작업을 빌드하는 방법을 모릅니다. 나는 루비 1.9.3과 레일 3.2.9를 사용하고있다. – gfreezy

+0

미안하지만 오타였다. 나는 그것을 수정했다 (rake db : drop) – Roger

0

당신은 하나에 마이그레이션 모든 어린이를 병합 Squasher 보석을 사용할 수 있습니다.