내 프로젝트의 몇 가지 맞춤 입력란이 포함 된 앱을 삭제했습니다. 이제 마이 그 레이션을 실행하려고하면 당연히 ImportError
이됩니다. 이 필드는 다음과 같은 매우 기본적인 맞춤 설정이었습니다.남은 마이그레이션이 실행되도록 삭제 된 사용자 정의 필드를 조롱하려면 어떻게해야합니까?
from django.db.models.fields import IntegerField
class SomeField(IntegerField):
def get_internal_type(self):
return "SomeField"
def db_type(self, connectio=None):
return 'integer'
def clean(self, value):
# some custom cleanup
pass
그래서 어느 것도 데이터베이스 수준 맞춤 설정을 포함하지 않습니다.
이 코드를 제거하면 이후 마이 그 레이션이 모두 정상적으로 실행되도록 마이 그 레이션을 만들었습니다. 그러나 사전 삭제 데이터베이스에서 실행하려고하면 실수를 느꼈습니다.
베어 본 (bare-bones) 앱을 다시 만들어서 가져 오기 작업을 할 수 있지만 이상적으로 남부에 이러한 문제를 해결하는 메커니즘이 있는지 알고 싶습니다. 아니면 모범 사례가 있습니까? 마이 그 레이션을 수정하고 코드베이스를 만지지 않아도이 문제를 해결할 수 있다면 멋질 것입니다.
(장고 1.3, 사우스 0.7.3)은
오른쪽. 그러나 VCS를 되감기와 관련된 옵션을 탐색하고 싶습니다. 결국 HEAD를 사용하여 데이터베이스를 시드 할 수 있어야합니다. – muhuk
@muhuk 그런 건 있는지 몰랐습니다. 그러나 프로덕션 DB의 스키마 및 테스트 DB 생성시 논리가 올바르며 마이그레이션이 잘 수행되면 마이그레이션을 변경할 수 있습니다. 예를 들어 일부 필드를 추가 한 다음 제거하는 최신 마이그레이션을 삭제하거나 마이그레이션 파일 내 모델 행을 수정하여 특정 필드를 삭제할 수 있습니다. 그것을 신중하게하십시오. – okm