最近、アプリ(UserProfile)にモデルを追加しましたが、変更をHerokuにプッシュしたときに、誤ってheroku run python manage.py makemigrations
を実行したと思います。 heroku run python manage.py migrate
を実行しようとすると、以下のエラーが発生します
(leaguemaster) benjamins-mbp-2:leaguemaster Ben$ heroku run python manage.py migrate
Running `python manage.py migrate` attached to terminal... up, run.1357
Operations to perform:
Synchronize unmigrated apps: allauth
Apply all migrations: auth, admin, socialaccount, sites, accounts, account, contenttypes, sessions, leagueapp
Synchronizing apps without migrations:
Creating tables...
Installing custom SQL...
Installing indexes...
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.
これを修正するにはどうすればよいですか?助けてください!
最初にローカルで移行を作成し、それらをリポジトリに追加し、新しい移行でファイルをコミットしてから、herokuにプッシュする必要があります。
シーケンスは次のようなものです。
1. (add/modify some someapp/models.py)
2. python manage.py makemigrations someapp
3. python manage.py migrate
4. git add someapp/migrations/*.py (to add the new migration file)
5. git commit -m "added migration for app someapp"
6. git Push heroku
7. heroku run python manage.py migrate
$ python manage.py makemigrations && python manage.py migrate
$ git add --all
$ git commit -m "Fixed migrate error"
$ git Push heroku master
$ heroku run python manage.py makemigrations
$ heroku run python manage.py migrate
また、自分の移行パスを無視しなかったこともあります。
.gitingnore
モデルに変更を加えた後、最初の移行ファイルを作成する前にmakemigrations
を実行したようです。アプリを新しいモデルを追加する前の状態に戻して、もう一度makemigrations
を実行して初期移行を作成してみてください。次に、更新を再度追加して、もう一度makemigrations
を実行します。これにより、最初のデータ構造から新しく更新されたデータ構造への2回目の移行が作成されます。次に、展開を試してください。
https://docs.djangoproject.com/en/1.7/topics/migrations/#adding-migrations-to-apps