カテゴリ: Django 更新日: 2026/02/02

Djangoマイグレーションの履歴管理|showmigrationsの使い方を初心者向けに完全解説

Djangoマイグレーションの履歴管理|showmigrations の使い方
Djangoマイグレーションの履歴管理|showmigrations の使い方

先生と生徒の会話形式で理解しよう

生徒

「Djangoでデータベースを触っていたら、マイグレーションって言葉が出てきて混乱しました。履歴って何ですか?」

先生

「マイグレーションは、データベースの設計変更の記録です。Djangoではその履歴を一覧で確認できます。」

生徒

「その履歴はどうやって確認するんですか?」

先生

「showmigrationsというコマンドを使うと、どこまで反映されたか一目で分かります。」

1. Djangoマイグレーションとは何か

1. Djangoマイグレーションとは何か
1. Djangoマイグレーションとは何か

Djangoマイグレーションとは、データベースの設計図を変更した履歴を管理する仕組みです。データベースとは、たくさんの情報を表形式で整理して保存する箱のような存在です。Djangoでは、モデルというPythonのクラスを使って、この箱の形を決めます。

設計図を変更するたびに、その変更内容をファイルとして保存するのがマイグレーションです。これにより、いつ、どんな変更をしたのかが分かるようになります。

2. マイグレーション履歴管理の重要性

2. マイグレーション履歴管理の重要性
2. マイグレーション履歴管理の重要性

履歴管理とは、変更の記録を残すことです。ノートに日付と内容を書いていくイメージです。Djangoでは、マイグレーション履歴を管理することで、データベースが正しい状態かどうかを確認できます。

もし履歴が分からないと、どこまで作業が進んでいるのか分からず、トラブルの原因になります。

3. showmigrationsコマンドの基本

3. showmigrationsコマンドの基本
3. showmigrationsコマンドの基本

showmigrationsは、マイグレーションの履歴一覧を表示するコマンドです。黒い画面で文字を入力するだけで使えます。


python manage.py showmigrations

このコマンドを実行すると、アプリごとにマイグレーションファイルが表示され、実行済みかどうかが分かります。

4. 実行結果の見方をやさしく解説

4. 実行結果の見方をやさしく解説
4. 実行結果の見方をやさしく解説

表示結果には、チェックマークのような記号が付きます。これは「すでにデータベースに反映されている」という意味です。


admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add

このように表示された場合、adminアプリのマイグレーションはすべて適用済みだと分かります。

5. アプリを指定して確認する方法

5. アプリを指定して確認する方法
5. アプリを指定して確認する方法

特定のアプリだけを確認したい場合もあります。そのときは、アプリ名を指定します。


python manage.py showmigrations blog

これにより、blogアプリだけの履歴が表示され、確認作業がとても楽になります。

6. 未適用マイグレーションの見つけ方

6. 未適用マイグレーションの見つけ方
6. 未適用マイグレーションの見つけ方

チェックが付いていない行は、まだデータベースに反映されていない変更です。これは、設計図は作ったけれど、まだ箱に反映していない状態です。


blog
 [ ] 0003_add_title_field

この状態を見つけたら、migrateコマンドで反映する必要があります。

7. なぜ初心者にshowmigrationsが大切なのか

7. なぜ初心者にshowmigrationsが大切なのか
7. なぜ初心者にshowmigrationsが大切なのか

初心者は、今どこで何をしているのか分からなくなりがちです。showmigrationsを使えば、データベースの状態を目で確認できます。

これは、地図を見ながら道を歩くようなものです。迷わず安心して作業ができます。

8. マイグレーション履歴とDB設計の関係

8. マイグレーション履歴とDB設計の関係
8. マイグレーション履歴とDB設計の関係

DB設計とは、データの形を考えることです。Djangoでは、その設計変更がすべてマイグレーション履歴として残ります。

showmigrationsを確認することで、設計の変化を振り返ることができ、安心して開発を進められます。

カテゴリの一覧へ
新着記事
New1
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
New2
Python
Pythonで文字列の長さを取得する方法!len()の基本と応用テクニック
New3
Python
Pythonのリストをソート(並び替え)する方法!sort()とsorted()の違いと使い方
New4
Flask
FlaskアプリでCORS設定をセキュアに行う方法を解説!初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Flask
PythonのFlaskで言語を自動判別!ユーザーに合わせた表示切り替えの仕組みを徹底解説
No.3
Java&Spring記事人気No3
Flask
PythonのFlaskでURLに言語コードを含める方法!多言語ルーティングの実装ガイド
No.4
Java&Spring記事人気No4
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.5
Java&Spring記事人気No5
Python
Pythonの変数宣言と型ヒントの使い方!初心者向けに基礎をやさしく解説
No.6
Java&Spring記事人気No6
Python
Pythonの関数を使ったカスタムソート(keyパラメータ)をわかりやすく解説!初心者でも使える並べ替えテクニック
No.7
Java&Spring記事人気No7
Python
Pythonのリストに要素を追加・削除する方法!append, remove, popの使い分けを解説
No.8
Java&Spring記事人気No8
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方