Миграции Django не удается выполнить в контейнере Docker после добавления новой модели

Я запускаю проект Django в контейнере Docker и сталкиваюсь с проблемой миграции после добавления новой модели в models.py.

Когда я пытаюсь применить миграции, система ищет старые миграции, но поскольку я пересобираю приложение через Docker, эти миграции отсутствуют. Когда я пытаюсь заставить Django игнорировать старые миграции, он пытается создать таблицы, которые уже существуют, и из-за этого процесс терпит неудачу.

Если я позволяю ему нормально запускать миграции, он пытается повторно применить миграции, которые уже были выполнены, что приводит к ошибкам.

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

Как решить эту проблему миграции в Docker? Любая помощь будет оценена по достоинству!

Вот что у меня в Dockerfile (теперь есть проблема с созданием существующих таблиц):

FROM python:3.11

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

# Vyčistíme migrace a vytvoříme nové při buildu image
RUN rm -rf api/migrations/* && \
    touch api/migrations/__init__.py 

# Instalace netcat pro kontrolu dostupnosti databáze
RUN apt-get update && apt-get install -y netcat-traditional

# Command který se spustí při startu kontejneru
CMD bash -c '\
    while ! nc -z db 5432; do \
        echo "Waiting for database..." && \
        sleep 1; \
    done && \
    echo "Database is up!" && \
    python manage.py makemigrations api && \
    python manage.py migrate && \
    python manage.py runserver 0.0.0.0:8000'
Вернуться на верх