Интеграция Django с устаревшей базой данных
Хотя Django лучше всего подходит для разработки новых приложений, вполне возможно интегрировать его в устаревшие базы данных. Django включает несколько утилит для автоматизации большей части этого процесса.
Этот документ предполагает, что вы знаете основы Django, как описано в учебнике.
После настройки Django вы последуете этому общему процессу для интеграции с существующей базой данных.
Предоставьте Django параметры вашей базы данных
Вам нужно сообщить Django параметры подключения к базе данных и имя базы данных. Сделайте это, отредактировав параметр DATABASES и присвоив значения следующим ключам для подключения 'default':
Автоматически сгенерировать модели
Django поставляется с утилитой под названием inspectdb, которая может создавать модели, инспектируя существующую базу данных. Вы можете просмотреть вывод, выполнив эту команду:
$ python manage.py inspectdb
Сохраните это в файл, используя стандартное перенаправление вывода Unix:
$ python manage.py inspectdb > models.py
Эта функция предназначена как сокращение, а не как окончательная генерация модели. Подробнее см. documentation of inspectdb.
После того, как вы очистите свои модели, назовите файл models.py и поместите его в пакет Python, который содержит ваше приложение. Затем добавьте приложение в параметр INSTALLED_APPS.
По умолчанию inspectdb создает неуправляемые модели. То есть managed = False в классе модели Meta сообщает Django, что не следует управлять созданием, изменением и удалением каждой таблицы:
class Person(models.Model):
id = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=70)
class Meta:
managed = False
db_table = 'CENSUS_PERSONS'
Если вы хотите разрешить Django управлять жизненным циклом таблицы, вам нужно изменить опцию managed выше на True (или просто удалить её, потому что True является её значением по умолчанию).
Установить основные таблицы Django
Далее, выполните команду migrate, чтобы установить любые дополнительные необходимые записи в базе данных, такие как разрешения администратора и типы контента:
$ python manage.py migrate
Тестирование и настройка
Это основные шаги — отсюда вы захотите настроить сгенерированные Django модели до тех пор, пока они не будут работать так, как вам нужно. Попробуйте получить доступ к вашим данным через API базы данных Django, попробуйте изменить объекты через административный сайт Django и соответствующим образом отредактируйте файл моделей.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.10/howto/legacy-databases/