• 3.2
  • 5.0
  • 6.1
  • Версия документации: 3.1

Integrating Django with a legacy database

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

Этот документ предполагает, что вы знакомы с основами Django, которые описаны в учебнике

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

Предоставьте Django параметры вашей базы данных

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

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

Django comes with a utility called inspectdb that can create models by introspecting an existing database. You can view the output by running this command:

$ python manage.py inspectdb

Save this as a file by using standard Unix output redirection:

$ python manage.py inspectdb > models.py

Обратитесь к документации на inspectdb для подробностей.

После приведения моделей в нормальный вид, сохраните их в файле models.py, разместив его в пакете, который хранит ваше приложение. Затем добавьте ваше приложение в 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

Next, run the migrate command to install any extra needed database records such as admin permissions and content types:

$ python manage.py migrate

Тестирование и настройка

Это основные шаги — отсюда вам нужно будет настраивать модели, созданные Django, до тех пор, пока они не будут работать так, как вам хочется. Попробуйте получить доступ к своим данным через API базы данных Django, попробуйте редактировать объекты через сайт администратора Django и соответствующим образом отредактируйте файл моделей.

Back to Top