Spec-Zone.ru › Django 2.2

Интеграция Django с устаревшей базой данных

Хотя Django лучше всего подходит для разработки новых приложений, вполне возможно интегрировать его в устаревшие базы данных. Django включает несколько утилит для автоматизации этой задачи как можно больше.

В этом документе предполагается, что вы знакомы с основами Django, как описано в уроке.

После настройки Django следуйте этому общему процессу для интеграции с существующей базой данных.

Укажите Django параметры базы данных

Вам нужно сообщить Django параметры подключения к базе данных и имя базы данных. Для этого отредактируйте настройку DATABASES и назначьте значения следующим ключам для подключения 'default':

  • NAME
  • ENGINE
  • USER
  • PASSWORD
  • HOST
  • PORT

Автоматически сгенерировать модели

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/2.2/howto/legacy-databases/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API