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