Django를 레거시 데이터베이스와 통합하는 방법

Django는 새로운 애플리케이션을 개발하는 데 가장 적합하지만, 기존 데이터베이스에 통합하는 것이 가능합니다. Django에는 이 프로세스를 최대한 자동화하기 위한 몇 가지 유틸리티가 포함되어 있습니다.

이 문서에서는 :doc:’tutorial’에서 설명한 대로 Django 기본 사항을 알고 있다고 가정합니다.

Django를 설정하면 이 일반 프로세스에 따라 기존 데이터베이스와 통합됩니다.

Django에게 데이터베이스 매개 변수를 제공하십시오.

데이터베이스 연결 매개 변수가 무엇이고 데이터베이스 이름이 무엇인지 Django에게 알려야 합니다. 다음과 같은 설정을 편집하여 작업을 수행합니다.’데이터베이스’ 설정 및 “기본값” 연결을 위해 다음 키에 값을 할당합니다.

자동으로 생성된 모델

Django comes with a utility called inspectdb that can create models by introspecting an existing database. You can view the output by running this command:

$ python manage.py inspectdb

Save this as a file by using standard Unix output redirection:

$ 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 테이블을 설치합니다

Next, run the migrate command to install any extra needed database records such as admin permissions and content types:

$ python manage.py migrate

테스트 및 조정하십시오.

이것이 기본 단계입니다. 여기서 Django가 만든 모델을 원하는 방식으로 작동할 때까지 수정해야 합니다. Django 데이터베이스 API를 통해 데이터에 액세스하고 Django의 관리 사이트를 통해 개체를 편집한 다음 그에 따라 모델 파일을 편집하십시오.

Back to Top