web-dev-qa-db-ja.com

Django Herokuエラー「モデルに変更があり、まだ移行に反映されていません」

最近、アプリ(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.

これを修正するにはどうすればよいですか?助けてください!

13
Ben

最初にローカルで移行を作成し、それらをリポジトリに追加し、新しい移行でファイルをコミットしてから、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
38
Burhan Khalid
  1. ローカルで移行する
$ python manage.py makemigrations && python manage.py migrate
  1. 変更をコミットしてサーバーにプッシュする
$ git add --all
$ git commit -m "Fixed migrate error"
$ git Push heroku master
  1. サーバー上で移行を行います
$ heroku run python manage.py makemigrations
$ heroku run python manage.py migrate

また、自分の移行パスを無視しなかったこともあります。

.gitingnore
4
ged flod

モデルに変更を加えた後、最初の移行ファイルを作成する前にmakemigrationsを実行したようです。アプリを新しいモデルを追加する前の状態に戻して、もう一度makemigrationsを実行して初期移行を作成してみてください。次に、更新を再度追加して、もう一度makemigrationsを実行します。これにより、最初のデータ構造から新しく更新されたデータ構造への2回目の移行が作成されます。次に、展開を試してください。

https://docs.djangoproject.com/en/1.7/topics/migrations/#adding-migrations-to-apps

0
Ryan Allen