So I\'m rapidly iterating on a django app at the moment and I\'m constantly adjusting models.py. Over the course of a day or two of programming and testing I generate a couple
So the step-by-step plan I outlined in my question does work, but instead of deleting rows from the south_migrationhistory
database table, I had to delete rows from the django_migrations
database table.
The command is: DELETE FROM django_migrations WHERE app='my_app'
Once this is done, you will be able to re-run your migrations from scratch.
I just wanted to put all the steps into a command format:
NOTE: The commands below are pretty destructive, it is a means to start from scratch
as the OP asked.
After a comment from mikeb
I thought to add this line:
PRE - CHECK WHAT FILES YOU WOULD DELETE
find . -path "*migrations*" -name "*.py" -not -path "*__init__*"
Then, adjust the command in step 1
to one that works for your dev environment.
find . -path "*migrations*" -name "*.py" -not -path "*__init__*" -exec rm {} \; # make sure to be in your projects path
sudo -u postgres bash -c "psql -c \"DROP DATABASE rootedin;\""
sudo -u postgres bash -c "psql -c \"CREATE DATABASE rootedin;\""
sudo -u postgres bash -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE rootedin to vagrant;\"" # vagrant is my current user
python3 manage.py makemigrations
python3 manage.py migrate