Как интегрировать Django с унаследованной базой данных¶
Хотя Django лучше всего подходит для разработки новых приложений, вполне возможно интегрировать его в старые базы данных. Django включает в себя несколько утилит для автоматизации этого процесса.
Этот документ предполагает, что вы знаете основы Django, как описано в tutorial.
Как только вы настроите 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, и отредактируйте файл моделей соответствующим образом.