레거시 데이터베이스에 장고 연동하기.¶
Django는 새로운 애플리케이션을 개발하는 데 가장 적합하지만, 기존 데이터베이스에 통합하는 것이 가능합니다. Django에는 이 프로세스를 최대한 자동화하기 위한 몇 가지 유틸리티가 포함되어 있습니다.
이 문서에서는 :doc:〉tutorial’에서 설명한 대로 Django 기본 사항을 알고 있다고 가정합니다.
Django를 설정하면 이 일반 프로세스에 따라 기존 데이터베이스와 통합됩니다.
Django에게 데이터베이스 매개 변수를 제공하십시오.¶
데이터베이스 연결 매개 변수가 무엇이고 데이터베이스 이름이 무엇인지 Django에게 알려야 합니다. 다음과 같은 설정을 편집하여 작업을 수행합니다.〉데이터베이스〉 설정 및 《기본값》 연결을 위해 다음 키에 값을 할당합니다.
자동으로 생성된 모델¶
Django는 기존 데이터베이스를 검사하여 모델을 만들 수 있는 :djadmin:〉inspectdb’라는 유틸리티와 함께 제공됩니다. 다음 명령을 실행하여 출력을 볼 수 있습니다.
$ python manage.py inspectdb
표준 Unix 출력 리디렉션을 사용하여 다음을 파일로 저장합니다.
$ python manage.py inspectdb > models.py
이 기능은 결정적인 모델 생성이 아닌 바로 가기 기능을 의미합니다. 자세한 내용은 :djadmin:〉inspectdb〉 설명서를 참조하십시오.
모델을 정리했으면 파일의 이름을 《모델》로 지정하십시오.py’를 앱이 들어 있는 python 패키지에 넣어주세요. 그런 다음 앱을 :seting:〉에 추가합니다.설치되었습니다.APPs의 설정입니다.
기본적으로 :djadmin:〉inspectdb’는 관리되지 않는 모델을 생성합니다. 즉, 모델의 ``메타》 클래스에 있는 ``관리된 = False》는 Django에게 각 테이블의 생성, 수정 및 삭제를 관리하지 말라고 말합니다.
class Person(models.Model):
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=70)
class Meta:
managed = False
db_table = 'CENSUS_PERSONS'
Django가 테이블의 라이프사이클을 관리하도록 허용하려면 :attr:〉~django.db.models를 변경해야 합니다.위의 옵션.managed는 《True》에 대한 옵션(또는 《True》가 기본값이기 때문에 제거)을 의미합니다.
코어 Django 테이블을 설치합니다¶
그런 다음 :djadmin:〉migrate〉 명령을 실행하여 관리자 권한 및 컨텐츠 유형과 같이 추가로 필요한 데이터베이스 레코드를 설치합니다.
$ python manage.py migrate
테스트 및 조정하십시오.¶
이것이 기본 단계입니다. 여기서 Django가 만든 모델을 원하는 방식으로 작동할 때까지 수정해야 합니다. Django 데이터베이스 API를 통해 데이터에 액세스하고 Django의 관리 사이트를 통해 개체를 편집한 다음 그에 따라 모델 파일을 편집하십시오.