Можно ли создавать модели django из базы данных?
Я работал с Django и Django ORM дома, и я должен сказать, что я считаю, что это один из лучших в плане удобства использования.
Однако мне было интересно, можно ли использовать его в "reverse".
В основном то, что я хотел бы сделать, это генерировать модели Django из существующей схемы базы данных (из проекта, который не использует django и довольно старый).
Возможно ли это?
Обновление: данная база данных Oracle
Ответы
Ответ 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)