Django Web アプリケーションの基盤として使用される従来の MySQL データベースがあります。当初はすべてのテーブルに MyISAM エンジンを使用していましたが、外部キーの要件により、すべてのテーブルを InnoDB に変更し、関連するモデルに外部キーと一意のフィールドを追加しました。
この開発データベースをすぐに本番サーバーにエクスポートする予定なので、South を使用してデータ モデルを db に移行しました。ただし、テーブル フィールド自体に明示的な PK、FK、および一意の制約があるテーブルはありませんが、最初の移行スクリプトによって生成された 0001_initial.py ファイルに表示されます。
経由で移行を実行しました
./manage.py schemamigration app --initial
./manage.py migrate app
Received Table Exists error, reran with --fake flag
./manage.py migrate app --fake
./manage.py migrate app
エラーなしで実行された最後のコマンド。私の質問は、データ移行の実行後にテーブルに明示的な制約を設定するべきではないということです。