Подтвердить что ты не робот

Можно ли создавать модели django из базы данных?

Я работал с Django и Django ORM дома, и я должен сказать, что я считаю, что это один из лучших в плане удобства использования.

Однако мне было интересно, можно ли использовать его в "reverse".

В основном то, что я хотел бы сделать, это генерировать модели Django из существующей схемы базы данных (из проекта, который не использует django и довольно старый).

Возможно ли это?

Обновление: данная база данных Oracle

4b9b3361

Ответ 1

Да, используйте команду inspectdb:

inspectdb

Интроспективно просматривает таблицы базы данных в базе данных, на которые указывает параметр DATABASE_NAME, и выводит модуль модели Django (файл models.py) на стандартный вывод.

Используйте это, если у вас есть устаревшая база данных, с которой вы хотите использовать Django. script проверит базу данных и создаст модель для каждой таблицы внутри нее.

Как и следовало ожидать, созданные модели будут иметь атрибут для каждого поля в таблице. Обратите внимание, что у checkdb есть несколько особых случаев в выводе имени поля:

[...]

Ответ 2

(Django 1.7.1) Простое выполнение python manage.py inspectdb создаст классы для всех таблиц в базе данных и отобразится на консоли.

 $ python manage.py inspectdb

Сохраните это как файл, используя стандартное перенаправление вывода Unix:

 $ python manage.py inspectdb > models.py

(Это работает для меня с mysql и django 1.9)