데이터베이스에서 장고 모델을 생성 할 수 있습니까?
나는 집에서 Django와 Django ORM을 엉망으로 만들고 있으며, 사용 편의성 측면에서 최고 중 하나라고 생각합니다.
그러나 "리버스"에서 사용할 수 있는지 궁금합니다.
기본적으로 내가하고 싶은 것은 기존 데이터베이스 스키마 (django를 사용하지 않고 꽤 오래된 프로젝트에서)에서 Django 모델을 생성하는 것입니다.
이게 가능해?
업데이트 : 문제 의 데이터베이스는 Oracle입니다.
예, 다음 inspectdb
명령을 사용하십시오 .
inspectdb
DATABASE_NAME 설정이 가리키는 데이터베이스의 데이터베이스 테이블을 조사하고 Django 모델 모듈 (models.py 파일)을 표준 출력으로 출력합니다.
Django를 사용하려는 레거시 데이터베이스가있는 경우이를 사용하십시오. 스크립트는 데이터베이스를 검사하고 그 안에있는 각 테이블에 대한 모델을 생성합니다.
예상대로 생성 된 모델에는 테이블의 모든 필드에 대한 속성이 있습니다. inspectdb에는 field-name 출력에 몇 가지 특별한 경우가 있습니다.
[...]
(Django 1.7.1) 단순히 실행 python manage.py inspectdb
하면 데이터베이스의 모든 테이블에 대한 클래스가 생성되고 콘솔에 표시됩니다.
$ python manage.py inspectdb
표준 Unix 출력 리디렉션을 사용하여이를 파일로 저장합니다.
$ python manage.py inspectdb > models.py
(이것은 mysql 및 django 1.9에서 나를 위해 작동합니다)
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
그러면 앱 내에서 모든 테이블이 다른 모델 파일로 포함 된 모델 폴더가 성공적으로 생성됩니다. 예를 들면 :
'code' 카테고리의 다른 글
추적 된 원격 분기의 변경 사항으로 로컬 분기 업데이트 (0) | 2020.09.25 |
---|---|
vue.js 웹팩 프로젝트에서 favicon.ico를 올바르게 설정하는 방법은 무엇입니까? (0) | 2020.09.25 |
JUnit으로 Java에서 추상 클래스를 테스트하는 방법은 무엇입니까? (0) | 2020.09.24 |
sed를 사용하여 문자열에서 텍스트를 추출하는 방법은 무엇입니까? (0) | 2020.09.24 |
MiniTest의 assert_raises / must_raise에서 예외 메시지를 확인하기위한 예상 구문은 무엇입니까? (0) | 2020.09.24 |