Сохранение структуры базы данных одинаковой при переключении веток git для проекта Django с помощью докеров - PullRequest
0 голосов
/ 26 февраля 2019

Мы разрабатываем проект Django, используя Docker-контейнеры с несколькими ветками Git.

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

Однако это вызывает некоторые проблемы, когда мы переключаемся с ветви функций, которая определенно опережает другую.Структура базы данных перевернута, и мы теряем данные.Есть ли какой-нибудь хороший способ сохранить структуру базы данных как можно более одинаковой (расширенный набор) и не иметь дело с миграциями вручную, когда мы переключаемся с ветви функций на устаревшую ветку?

Наша конфигурация докера следующая:

 version: '3.3'
 services:
   postgres:
     image: postgres:latest
     restart: always
   redis:
     image: redis:latest
     restart: always
   web:
     build: ./project
     command: bash -c "python manage.py makemigrations && python manage.py migrate --noinput && gunicorn project.wsgi -b 0.0.0.0:8000 --workers 16"
     volumes:
     - ./project:/app
     expose:
     - "8000"
     depends_on:
     - postgres
     - redis
     restart: always
   celery:
     build: ./project
     command: celery -A project worker -l info --concurrency=8 --max-tasks-per-child=1
     volumes:
     - ./project:/app
     depends_on:
     - postgres
     - redis
     restart: always
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...