나는 집에서 Django와 Django ORM을 엉망으로 만들고 있으며, 사용 편의성 측면에서 최고 중 하나라고 생각합니다.
그러나 "리버스"에서 사용할 수 있는지 궁금합니다.
기본적으로 내가하고 싶은 것은 기존 데이터베이스 스키마 (django를 사용하지 않고 꽤 오래된 프로젝트에서)에서 Django 모델을 생성하는 것입니다.
이것이 가능한가?
업데이트 : 문제 의 데이터베이스는 Oracle입니다.
답변:
예, 다음 inspectdb
명령을 사용하십시오 .
inspectdb
DATABASE_NAME 설정이 가리키는 데이터베이스의 데이터베이스 테이블을 조사하고 Django 모델 모듈 (models.py 파일)을 표준 출력으로 출력합니다.
Django를 사용하려는 레거시 데이터베이스가있는 경우이를 사용하십시오. 스크립트는 데이터베이스를 검사하고 그 안에있는 각 테이블에 대한 모델을 생성합니다.
예상대로 생성 된 모델에는 테이블의 모든 필드에 대한 속성이 있습니다. inspectdb에는 field-name 출력에 몇 가지 특별한 경우가 있습니다.
[...]
dev
버전을 참조한다는 점을 지적해야 할 수도 있습니다 (더 강조하면? 어쩌면 아닐 수도 있습니다 ..).
django의 inspectdb 명령 유틸리티 인 Django Inspectdb Refactor를 기반으로 재사용 가능한 앱을 만들었습니다 .
이렇게하면 기존 데이터베이스에서 모델 폴더 내의 다른 파일로 모델이 분할됩니다. 이렇게하면 모델 수가 많아 질 때 관리하는 데 도움이됩니다.
pip를 통해 설치할 수 있습니다.
pip install django-inspectdb-refactor
그런 다음 settings.py에 앱을 다음과 같이 등록하십시오. inspectdb_refactor
그런 다음 명령 줄에서 다음과 같이 사용할 수 있습니다.
python manage.py inspectdb_refactor --database=your_dbname_defined_in_settings --app=your_app_label
이렇게하면 모든 테이블이 앱 내부에 다른 모델 파일로 포함 된 모델 폴더가 성공적으로 생성됩니다. 예를 들면 :
get_meta() missing 1 required positional argument: 'is_partition'
. django 2.0 사용