stack: Django/Docker/Postgresql
I have made some changes in database models last month and deployed in preprod.
- remove fields
- add fields
- alter one field constraint
All seems to be correct, changes were applied and app was running.
Yesterday, I've made some minor changes and re-deployed but when I re-build my project, new migrations are detected. These migrations are exactly the same as above. And migrate failed because trying to remove a field that did not exist anymore.
Django app update procedure:
- sudo docker-compose -f docker-compose.preprod.yml down -v
- git pull
- sudo docker-compose -f docker-compose.preprod.yml up -d --build --remove-orphans #<= error raise
- sudo docker-compose -f docker-compose.preprod.yml up
entrypoint.sh
#!/bin/sh
if [ "$DATABASE" = "postgres" ]
then
echo "Waiting for postgres..."
while ! nc -z $SQL_HOST $SQL_PORT; do
sleep 0.1
done
echo "PostgreSQL started"
fi
python manage.py makemigrations --noinput
python manage.py migrate
exec "$@"