Успешная миграция не создается в проекте Django

Пишу python3 manage.py makemigrations, выходят логи об успешном создании миграции

Migrations for 'shop':
  shop/migrations/0001_initial.py
    - Create model Cart
    - Create model Customer
    - Create model Product
    - Create model ProductImage
    - Create model CartProd
    - Add field customer_id to cart

Но файл миграции не появляется, и ошибку не знаю где ловить. Запускаю все в контейнере Dockerfile

FROM python:3.9.1
ENV PYTHONUNBUFFERED=1
WORKDIR /usr/src/hh_ru_django
COPY requirements.txt /usr/src/shop
RUN pip install -r requirements.txt
COPY . /usr/src/shop

docker-compose.yml

version: "3.7"

volumes:
  postgres-data:

services:
  db:
    image: postgres:13
    env_file: .env
    volumes:
      - postgres-data:/var/lib/postgresql/data/
    restart: always
  django:
    build: .
    command: python manage.py runserver 0.0.0.0:8800
    volumes:
      - .:/usr/src/shop
    ports:
      - "8800:8800"
    env_file: .env
    depends_on:
      - db
    restart: always

Запускал миграции командой docker-compose run django python3 manage.py makemigrations.


Ответы (1 шт):

Автор решения: Vit

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

То есть что-то вроде: python manage.py makemigrations docker-compose build docker-compose exec <пакет> python manage.py migrate --noinput

→ Ссылка