问题
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.
回答1:
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.
回答2:
Make sure you have committed migrations file. then run
heroku run python manage.py migrate
Please see this documentation.
回答3:
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:
- Commit your migration files to Github(or your source control system) and then run the
migratecommand on the Heroku shell - recommended - Create the migration files and then run the migration on the heroku bash shell. - NOT RECOMMENDED on production
来源:https://stackoverflow.com/questions/40790533/how-heroku-run-python-manage-py-migrate