Интеграция 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создает неуправляемые модели. То есть в классе модели говорит Django не управлять созданием, изменением и удалением каждой таблицы:managed = FalseMeta

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 и соответствующим образом отредактируйте файл модели.

Copyright ©2021 All rights reserved