Миграции 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'