2017-12-04 2 views
0

오랫동안 재배포 할 Rails-API 앱이 있습니다. 앱은 프로덕션 버전이 아니지만 프로덕션 버전을 배포 할 준비가되었습니다. 기본적으로 모든 마이그레이션 파일을 삭제하고 스키마를 사용하여 처음부터 시작하려는 경우이 방법에 문제가 있습니까? 내가이 일을 할 수 있다고 가정 할 때, schema.rb를 바꾸려면 무엇이 필요합니까? 이것은 일반적인 관행입니까? 나 한테는 합당한 것 같아.모든 마이그레이션 파일을 삭제하고 처음부터 시작할 수 있습니까?

# what do I change the version param value to? 
ActiveRecord::Schema.define(version: 20171129023538) 

답변

2

마이그레이션은 데이터베이스를 업데이트하거나 이전 버전으로 롤백하는 데 사용됩니다. 마이그레이션이 모든 환경에서 실행 된 후에는 다시 보지 않습니다 (수동으로 schema_migrations 테이블을 사용하는 경우는 제외). 모든 이전이 완료되면 데이터베이스의 현재 상태는 db/schema.rb (또는 db/structure.sql)이므로 schema.rb이면 새로운 데이터베이스로 시작하는 데 필요한 모든 것입니다.

나는 혼란을 줄이기 위해 매월 몇 개월마다 이전 마이그레이션을 지우는 경향이 있습니다.

버전 정보는 그대로 둘 수 있습니다. 과거의 시간 (예 : 2017-11-29 02:35:38)을 나타내며 실행해야하는 마이그레이션보다 낮 으면 (모든 항목을 삭제할 때 적용되지 않음) 그렇다면 그것이 무엇인지는 중요하지 않습니다.

이전의 모든 마이그레이션은 이미 schema.rb에 반영되어 있으며 필요한 경우 언제든지 버전 관리에서 수정할 수 있습니다.

+0

일단 모든 마이 그 레이션 파일을 삭제하면 ActiveRecord :: Schema.define (버전 : 20171129023538)은 무엇입니까? 버전 : 0? 또는 그 이후의 마이그레이션이 그 가치를 대체 할 것이므로 중요합니까? – gangelo

+0

그냥 그대로두면 2017-11-29 02:35:38이 과거였습니다. 마이그레이션이 남아 있지 않아 그대로있는 것이 좋습니다. –

+0

Worked. 쿨 한 콩. – gangelo

관련 문제