1

既存の Django アプリに South をインストールしました。この Django アプリは Heroku にもあります。

モデルに変更を加えずに、次のコマンドをローカルで実行しました。

  • manage.py schemamigration app_name --initial
  • manage.py migrate --fake

次に、heroku master をプッシュして、そこに移行しようとしました。しかし、私は以下を受け取ります:

Running migrations for app_name:
- Nothing to migrate.
  - Loading initial data for notecards.
No fixtures found

Heroku の移行を偽造しようとすると、同じメッセージが表示されます。

データベースが同じままであるため、技術的に移行するものがないため、これで問題ない可能性があると考えました。

そこで、モデルの 1 つに小さな変更を加え、次のことを行いました。

  • manage.py schemamigration app_name --auto
  • manage.py migrate

その後、Heroku にプッシュして移行を試みましたが、まだ次のメッセージが表示されます。

Running migrations for app_name:
- Nothing to migrate.
  - Loading initial data for notecards.
No fixtures found

私が間違っていることについての助けは素晴らしいでしょう。ありがとう。

4

1 に答える 1

-1

この問題に出くわした他の人のために、そして私自身の参考のために. 私を正しい軌道に乗せてくれた Chris Pratt に感謝します。

これは次の方法で解決されました。

ローカル:

古い移行を再帰的に削除するgit rm -r migrations

古いデータベースをフラッシュします(これによりすべてのデータが削除されますが、私にとってはこれは問題ではありませんでした)manage.py flush

app フォルダーの migrations フォルダーを削除する

初期スキーマ移行を実行するmanage.py schemamigration --initial

偽の移行を実行するmanage.py migrate --fake

heroku マスターをプッシュする

Heroku の場合:

移行するheroku run python manage.py migrate app_name

次に、ローカルで、migrate --auto を実行し、heroku にプッシュして、migrate app_name を実行できます。

于 2012-05-01T16:17:48.573 に答える