djangoを利用してアプリ開発をする際にはmodels.pyからテーブル定義したコードをデータベースに反映させるために、makemigrationsとmigrateなるコマンドを入力します。
本日はそんなmakemigrationsとmigrateの2つが何をしていて、具体的にどのような違いがあるのかを説明します。
コンテンツ
makemigrationsとmigrateコマンドが何をしているか
使用手順
models.pyでテーブル定義をした後に以下のコマンドを順番に実行します。
1 2 |
% python manage.py makemigrations % python manage.py migrate |
それでは以下からこの2つのコマンドが何をしているのか言葉で説明します。
makemigrations
1 |
% python manage.py makemigrations |
このコマンドがしていることは、モデルの変更差分からマイグレーションファイルを自動的に生成します。
migrate
1 |
% python manage.py migrate |
このコマンドがしていることは、%python manage.py mekemigrationsで生成されたマイグレーションファイルを基に、データベースのテーブルを作成・変更します。
makemigrationsとmigrateを図で説明
「文字で説明されてもわからないよ!!」って人のために図で説明します。
手順を説明すると
- makemigrationsでマイグレーションファイルを自動的に生成
- migrateで1.で作成されたファイルを読み取る
- 2.で読み取ったファイルをDatabaseに反映する
実際始めたばかりだとおまじない的なコマンドになってしまうかもしれません。
しかしながら簡単に図でも理解をすることできていれば、今後の開発やエラー処理で原因を探る際のヒントにもなりますので是非理解をすることをおすすめします。
最後に
いかがでしたでしょうか。
以上が、「【django】makemigrationsとmigrateの違い」の説明記事になります。
プログラミング学習を効率良く進めるには…
私ヒロヤンがプログラミングを始めた頃は以下のような感じでした。
そしてネットで調べていくうちに膨大な時間が過ぎていきました。
私ヒロヤンの実体験より、プログラミングを効率的に学ぶために大切なことは以下のことだと考えています。
1. いつまでもダラダラとやらないで、目標を決定して短期集中する
2. マンツーマンで、わからない箇所は直ぐに質問をして即レスをもらう
.proでは私ヒロヤンが学習してきたプログラミング経験0からのpython/django、その他webサイト・サービス開発のコースが用意されています。
カウンセリング自体は無料なので話を聞いてみるだけでもいかがでしょうか?
また以下のリンク先ではdjango専用のプログラミングスクールをまとめ紹介しています。