Работа с Django MIgrations

Я работаю над проектом Django с базой данных Postgres, используя Docker. Мы столкнулись с некоторыми проблемами в наших миграциях, я не добавил Django миграции в .gitignore, потому что я хочу, чтобы у всех были одинаковые поля базы данных и одинаковые миграции, но каждый раз, когда кто-то изменяет модели или добавляет новую модель и продвигает код с миграциями, миграции не применяются в нашей базе данных, как это должно быть, каждый раз мы сталкиваемся с этой проблемой, что иногда ABC ключ не существует или ABC таблица не существует, так как я могу преодолеть это.

Dockerfile:

EXPOSE 8000

COPY ./core/ /app/
COPY ./scripts /scripts

RUN pip install --upgrade pip
COPY requirements.txt /app/
RUN pip install -r requirements.txt && \
    adduser --disabled-password --no-create-home app && \
    mkdir -p /vol/web/static && \
    mkdir -p /vol/web/media && \
    chown -R app:app /vol && \
    chmod -R 755 /vol && \
    chmod -R +x /scripts

USER app

CMD ["/scripts/run.sh"]

run.sh

#!/bin/sh

set -e

ls -la /vol/
ls -la /vol/web

whoami

python manage.py collectstatic --noinput
python manage.py makemigrations
python manage.py migrate

uwsgi --socket :9000 --workers 4 --master --enable-threads --module myApp.wsgi

docker-compose.yml

version: "3.8"
   
services:
  db:
    container_name: db
    image: "postgres"
    restart: always
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - dev.env
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=POSTGRES_DB
      - POSTGRES_USER=POSTGRES_USER
      - POSTGRES_PASSWORD=POSTGRES_PASSWORD

  app:
    container_name: app
    build: 
      context: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./core:/app
      - ./data/web:/vol/web
    env_file:
      - dev.env
    ports:
      - "8000:8000"
    depends_on:
      - db

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