1

私は、MySQL データベースでかなりの量のデータを使用して実行している実稼働 Web プロジェクトを持っています。「enterlink」というアプリにいくつかの変更を加えてデータベースを更新しようとしています。既存のモデルに新しい要素を加え、完全に新しいモデルを作成しました。この移行の前に、最初にsyncdbを実行して作成して以来、dbのスキーマに触れたことはありませんでした。「python manage.py makemigrations enterlink」を実行すると、以下の出力が表示されます(pic)。私の質問は、なぜこれが起こっているのですか?DB には、図にリストされているすべてのモデルが既に含まれているのに、なぜそれらのモデルのリストを登録しているのでしょうか? 「python manage.py migrate」または「python manage.py migrate --fake enterlink」を実行して移行を完了すると(写真は再び)、出力が表示されますが、データベース スキーマは古いデータベースと同じままで、新しいコードはエラーを生成します。誰が問題の可能性が高いか教えてもらえますか? どんなアドバイスでも本当に感謝しています。何が欠けているのかわからないので、とてもイライラしています。

enterlink アプリを作成したときの出力

4

3 に答える 3

2

この質問と関連する回答は興味深いものです。したがって、ライブデータベースと移行の維持に関する私の経験を共有したいと思います。

django1.5.5でテスト済み

データベースの初期化:

  1. ./manage.py syncdb --noinput
  2. ./manage.py migrate
  3. ./manage.py syncdb

これでデータベースが作成されました。

アプリの移行を行う:

  1. ./manage.py schemamigration myapp --initial
  2. ./manage.py migrate myapp --fake
  3. モデルに必要な変更を加えます
  4. ./manage.py schemamigration myapp --auto
  5. ./manage.py migrate myapp
于 2015-06-06T21:19:48.187 に答える