2014-12-30 1 views
0

:가져 오기 응용 프로그램 외래 키 모델 클래스 나 다른 유사한 질문이 알지만, 특정 사건이

는 지금이 개있는 프로그램이 : -prev_app -new_app

prev_app은 "제품"모델을 포함합니다. new_app에 "상점"및 "계약"모델이 포함되어 있습니다. "저장"모델은 manytomanyfield를 가진다 "제품"모델 "계약", "저장"과 "제품"

.. 의 중간 모델입니다.

이제는 "제품"모델을 new_app에 넣는 것입니다. (모든 관련 모델은 하나의 응용 프로그램에 포함되어 있습니다.)하지만 마이그레이션을 진행하는 방법을 모르겠습니다.

의견이 있으십니까?

답변

1

db_table을 모델에 넣고 원하는 위치로 옮깁니다. 그것은 항상 이전 db 테이블을 참조하며 새 응용 프로그램에 대한 마이그레이션이 필요하지 않습니다.

class Product(models.Model): 
    class Meta: 
    db_table = 'oldapp_tablename' 

새 레이아웃에 따라 가져 오기를 조정해야합니다.

+0

시도해 보았습니다. 그러나 이후에는 모델 중 하나에 필드를 추가하여 마이그레이션을 수행해야했습니다. 그리고 여기에 문제가 있습니다. 일단 마이그레이션하면 로그에 "django.db.utils.OperationalError : table"prevapp_product "already exists"라고 표시됩니다. 예를 들어 이전 마이그레이션에서 prev_app에서 모델을 삭제 한 다음 new_app에서 "product"모델을 만들 때 문제가 발생하고 작업에서 'prevapp_product'테이블을 사용한다고 명시된 것처럼 보입니다. 모든 단서? – monkeyBug

+0

@monkeybug try "python manage.py migrate --fake" – doniyor

+0

처음에는 db_table = 'oldapp_tablename'이 도움이되었지만 이전 작업을 계속 진행하려면 이전에 가져온 데이터를 가져 와서 데이터를로드해야했습니다 테이블을 마이그레이션에 의해 생성 된 새 테이블로 이동하십시오. – monkeyBug