I deployed a simple Django app in Heroku
Steps:
- git push heroku master
- heroku run python manage.py makemigrations ( or + app_name)
it seem to affect:
0002_main.py:
- Create model Comment
- Remove field status from match
- Remove field quantity from slot
- Add field avatar to account
- Add field slots to match
- Alter field verification_code on account
- Alter field verification_code on slot
- Add field match_object to comment
- Add field user to comment
- Alter index_together for comment (1 constraint(s))
then I run
- heroku run python manage.py migrate
but i received:
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
The Heroku filesystem is read-only as per the documentation.
This means that when you disconnect from the dyno the files created by the makemigrations
command will be destroyed.
To solve your issue you can:
migrate
command on the Heroku shell - recommended Your migration files should be committed to your source control, and never run makemigrations
on heroku.
With committed migration files, this problem becomes non existant.
Make sure you have committed migrations file. then run
heroku run python manage.py migrate
You can specify the app name in the following way:
heroku run python manage.py migrate -a <app-name>
Please see this documentation.
To make Heroku handle applying the migrations when deploying add the following to you Procfile
release: python manage.py migrate
Either
heroku run python manage.py migrate
or
heroku run python3 manage.py migrate
If needed to specify app name:
heroku run python3 manage.py migrate -a <app-name>