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