Интеграция 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/2.1/howto/legacy-databases/