2016-10-19 3 views
1

저는 얼마 동안 Django 응용 프로그램에서 작업 중이며 동적 모델 및 데이터베이스 테이블 생성에 대한 필요성이 있습니다. 장고 API는이 함수를 포함하지 않는다. 내가 수집 한 내용에서 South에는이를 수행하는 기능 (예 : south.db.create_table)이 있습니다. 그러나 South의 릴리스 노트에서 수집 한 내용에서 South는 Django 1.7 이상과 호환되지 않으며 프로젝트는 Django 1.9를 사용하여 작성되었습니다.Django : 데이터베이스 테이블을 프로그래밍 방식으로/동적으로 작성하십시오.

이미 나는 다음과 같은 방법을 사용하여 내 데이터베이스로 마이그레이션하고자하는 스키마 모델 인스턴스를 생성하는 스크립트를 작성했습니다

:

attrs = {'__module__':model_location, 'Meta':Meta} 
model = type(table_name, (models.Model,), attrs) 

추신을 언급 된 스크립트 전체가 아닙니다. 제공하는 것이 유용 할 것이라고 생각되면 요청시 추가 할 수 있습니다.

누구나 Django 1.9에서 South 1.0.2를 사용하기위한 해결 방법을 찾았습니까? 남한없이이 기능을 어떻게 달성 할 수 있는지에 대한 아이디어가없는 사람은 없습니까? 필자는 테이블을 동적으로 생성하는 대신 대체 방법을 생각해 보았습니다. 그러나 이것은 실제로 프로젝트의 범위에서 가장 간결하고 깨끗한 결과를 제공하는 것처럼 보입니다.

감사합니다.

답변

2

South가 최근 장고 버전과 호환되지 않는 이유는 Django 1.7부터 "마이그레이션"이라는 이름으로 rolled into Django이었습니다. 비슷한 기능을 원하면 출발점은 documentation on migrations입니다. 특히 RunSQL 섹션을 참조하십시오.

마이그레이션 모듈을 피하려면 perform raw SQL queries을 사용할 수도 있습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 둘 다 조사하고있다. 그러나 안전상의 이유로 원시 SQL 쿼리를 피하기를 바랬습니다. –

관련 문제