Успешная миграция не создается в проекте 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 шт):
как мне пояснял вчера коллега с похожей ситуацией, файл миграции надо создавать (makemigrations) локально (тогда он будет виден в дереве, отправлен на гит и прочее), а потом, пересобрав проект в композере, выполнить там migrate. Собственно у меня была похожая ситуация, и именно с помощью этой рекомендации сейчас все работает и создается и мигрирует.
То есть что-то вроде: python manage.py makemigrations docker-compose build docker-compose exec <пакет> python manage.py migrate --noinput