2

私はしばらくの間herokuでDjangoプロジェクトを実行していますが、ツリーの数日前にスキーマモデルを更新しようとしましたが、書くたびに

heroku run python manage.py migrate quizzer

heroku はすべてが最新であると言い続けますが、models.py フォルダーを変更し、いつものようにスキーマの移行を実行しました。

なぜこれが起こっているのか、またはherokuアプリにスキーマを強制的に移行する方法を知っている場合は、その方法を教えてください.

Ps: heroku に保存されているデータとローカル サーバー データベースに保存されているデータが同じではないため、hole データベースを削除できません。また、ユーザーのデータを失いたくないのです。

4

3 に答える 3

5

models.py を変更した後、quizzer で schemamigration を実行するためのワークフローを次に示します。

./manage.py schemamigration quizzer --auto # create migration
./manage.py migrate quizzer # apply migration locally
git add .
git commit -m "Changed quizzer models, added schemamigration"
git push heroku
heroku run python manage.py migrate quizzer # apply migration on heroku

移行ファイル (通常は appname/migrations にあります) を git にチェックインし、コミットして heroku にプッシュするのを忘れているようです。

于 2013-01-18T18:01:48.837 に答える
1

南部が requirements.txt にない可能性があります。試す:

pip freeze > requirements.txt

...別の git add/commit/push が続きます。

また、South のインストール手順に従ってsyncdb「South 移行追跡テーブルを作成する」ために、最初に を実行する必要があります。だから試してください:

heroku run python manage.py syncdb

...次に、migrate コマンドを再試行します。

于 2014-05-14T03:44:19.570 に答える