【Django】SQLテーブルの作成『migrate』をやり直す方法

【Django】SQLテーブルの作成『migrate』をやり直す方法

【Django】SQLテーブルの作成『migrate』をやり直す方法

考えながら作成しているとどうしてもテーブル構成の変更の必要が出てきます。
そんな時、LaravelではMySQLで直接テーブル構成を弄っても問題ありませんでした。
全ては命名規制というルールのもとに統治されていたので、それさえ守っていればどのような手順で作成しても問題なかったんです。

でも、Djangoではそうもいかない様子。
マイグレーションで出来上がったテーブル見ると外部キー制約に全く感知していない文字列が入っていたりします。
と言う事で、マイグレーションのやり直しをしようと調べた結果を記録しておきます。

マイグレーションの履歴を削除する

これでmigrateしていなかったように振る舞うことができます。

マイグレーションをアプリごとに実行する

これで他のアプリにはタッチせず指定したアプリのみでマイグレーションが実行されます。

注意点

作成しているテーブルは削除してくれないようです。
その為、MySQLのテーブル削除は手動で行う必要がありました。
削除されていると思って【python ./manage.py migrate portraits】を実行すると「テーブルあるぞ」とエラーが発生します。

まとめ

こう言う部分は「Laravelって自由度高かったんだなぁ」と実感します。
テーブル作成をフレームワークにお願いしなくても良かったですからね。
それが当たり前だったのでこのマイグレーションについては「Djangoちょっと不便」と感じました。