Как интегрировать django с существующей базой данных Postgres

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

Ссылка на статью здесь: how-to-integrate-django-with-existing-database

Редактирование settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': '<name>',
        'USER': '<user>',
        'PASSWORD': '<password>',
        'HOST': '<host>',
        'PORT': '<port>',
    }
}

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

python manage.py inspectdb > models.py

Настройте таблицы в соответствии с вашими предпочтениями. Скопируйте все таблицы и добавьте их в файл models.py

вашего приложения.

Теперь создайте начальные миграции для существующих таблиц

python manage.py makemigrations

Запустите команду migrate для применения миграций, используйте опцию --fake-initial, которая применит миграции там, где это возможно, и пропустит миграции, где таблицы уже есть:

python manage.py migrate --fake-initial

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

Спасибо: Дима Книвец

Вернуться на верх