Как интегрировать 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/5.2/howto/legacy-databases/