2017-11-09 5 views
0

필요한 것은 데이터베이스의 현재 구조를 설명하는 마이 그 레이션을 얻는 것이고 내 모델은 db의 구조에 맞춰져 있지 않기 때문에 제 모델 파일에서 정의한 것이 아닙니다. 그래서 현재 상태를 얻고 내 모델에 정의 된 수정 내용을 적용하여 정렬되도록하고 싶습니다. 가능합니까? 그리고 어떻게?django의 모델이 아닌 db에서 현재 db 마이그레이션 상태 가져 오기

+0

내 모델이 db 구조에 맞지 않는다는 것은 무엇을 의미합니까? 내 모델의 – Satendra

+0

은 실제 데이터베이스와 다른 구조의 테이블 일 수 있습니다. 상태는 현재 상태에서 내 데이터베이스로 가져 오려고합니다 – Giuseppe

+0

가능한 복제본 https://stackoverflow.com/questions/1179469/is-it-possible -to-generate-django-models-from-the- – Satendra

답변

1

Django-admin에는 inspectdb이라는 데이터베이스에서 모델을 만드는 명령이 있습니다. documentation here을 찾을 수 있습니다. 필요에 따라 당신이 더 잘 알고있는 경우,

  • 후 얻을 수 makemigrations를 실행
  • 검토 결과 및 변경 필드 유형,

    • 처음 inspectdb를 사용하여 초기 모델을 생성 :

      생각은하는 것 현재 데이터베이스의 이전과

    • 다음으로 (현재 앱에있는 항목으로) 모델 수정을 시작하고
    • 을 실행하십시오..

    상당히 복잡한 작업이므로 권장되는 방법은 두 개의 데이터베이스를 사용하여 첫 번째 데이터를 새 데이터로 이동하는 것입니다. Django는 db에 많은 테이블을 추가 할 것이고 아마 당신의 legacy db에 이것을 원하지 않을 것입니다. this blog post

  • +0

    가능한 방법이지만 inspectdb는 수동 검사가 필요합니다 100 % 신뢰할 수 없기 때문에 자동화 된 프로세스로 사용할 수 없습니다. – Giuseppe

    +0

    django 앱에 레거시 DB를 통합하려면 수동 작업을해야합니다. 나는 이것이 신뢰성있게 자동화 될 수 있다고 생각하지 않는다. 그리고 일회성 문제이기 때문에 그것이 왜 문제인지는 알 수 없습니다. – dirkgroten