移行を解決するためのジャンゴエラー
1、Djangoは移行プロセスを理解します
ステップ1:移行ファイルを生成します
- 1つのファイルのコード生成マイグレーション
- 2移行ファイルが配置されています
- 3移行コンテンツ
この移行の内容を記録した文書の内容を移行し、移行の前に数回を継承
(継承は、それが移行ファイルを実行することができませんでし間違って継承につながる可能性があり、例えば、1つのファイルの移行を削除し、正しくなければなりません)
第二段階:移行ファイルの実装
位置123は、スクリーンショットです
- 1マイグレーションコード実行
- 2件のマイグレーションの記録位置データが移行された後
- 3移行記録されたコンテンツ
ファイル内のレコードの移行と移行の間の関係を理解します
あなたが名前のレコードの移行ファイル名と移行が一から一であることがわかります密接に見て
2、可能性のある問題と解決策
2.1、第一、新たに追加されたフィールド
あなたはモデルに新しいフィールドを追加した場合と同様の移行コード中に発生することがあり
、あなたの好みを得るために、ライン上の1または2に記入
- オプション1:新しいフィールドのデフォルト値を書いてみましょう(そして、あなたがセットタイプに割り当て対応のタイプには、[OK]、注意を払うを入力し、値を書き、オプション1を入力してください)
- オプション2:OK、あなたは新しい追加がデフォルト=番号を追加後ろに対応するフィールドをre-models.pyし、再度移行を生成する、マイグレーションを実行する必要があり、その後、終了します
2.2移行が(ここでの唯一の思考の問題に対する解決策を提供します)に発生したエラーである理由、二つ目は、私は知りません
最初のエラーの理由を確認し、英語は百度の外に直接コピーすることができます読み取ることができません。
2.2.1、可能性のある問題
- ファイルを移行することで問題を継承します
- エラーpymysql.err.InternalError
- エラーdjango.db.utils.InternalError
2.2.2ソリューション
移行ファイルやレコードへ①一貫性のない移行
- 1、移行ファイルやレコードへの移行を確認するには、(私のように、以下のスクリーンショットのように、シリアル番号が連続する必要があります)と同じです
- 移行ファイルを削除するには、2.1(移行ファイルレコードよりも多くの場合)を再生成と移行のレコードがありません
- 2.2①スキップする(以上、マイグレーションファイルよりも記録されている場合)、②直接実行
②移行合意後にファイルやレコードを移行する、または再実行エラー
如果①之后还是报错,再用②
- 最初の前に道を変更するために減少し1、models.py
- ないファイルの移動で2、[削除記録(スキップされていない場合)
- 3、新しい移行ファイルを生成し、移行されたファイルの背面にあるファイル操作に操作の新しい移行をコピー
- 移行は新しいファイルが無駄にコピーした後、4、削除
- 6、あなたが変更したり、models.pyに追加する追加し、物事を削除
- 図5は、再実行して新しい移行ファイル再生成(問題のほとんどには、②ここでは解決されている必要があります)
(手動でデータベース内部ではなく、models.pyによって構成テーブルを変更することがほとんどである)③移行コンテンツ記録と矛盾データベース
-
1は、コードとデータベース内models.pyチェック
主にこれ以上のフィールドが存在しない参照するには、フィールド名は同じではありませんし、そうではありません -
2.1、データベース内の乏しいものならば、直接連結することができるデータベースを維持するために一貫しmodels.py
-
2.2②3の内側から開始し、かわいそうがmodels.pyの場合
3、他のソリューション
python manage.py --fake [バージョン名]
https://blog.csdn.net/a599174211/article/details/82795206
図4は、上記溶液が使用され、依然として問題があります
这时候你可以选择暴力解决
1、移行ファイルやレコードへの移行は、削除され
たデータテーブルの構成が削除され、2(models.py内部(データベースの内容は、TXTまたは直接輸出SQLを保つために明細書のコピーを挿入する必要がある可能性がある場合)コンテンツは、一般的に)削除しない
問題がなければ、あなたがデータベースにデータを挿入することができ、同じように、3を移行ファイル、再実行して移行ファイルを再生成して、ファイルの移行かどうかを確認し、記録します
生成迁移文件
python manage.py makemigrations
执行迁移文件,并记录
python manage.py migrate