はじめての方へ・ステップ 7 / 12
データベースの表を作る
メモをしまっておくデータベースの表を、マイグレーションで作ります。データベースと表のしくみ、マイグレーションの作り方と実行のしかた、元に戻し方を説明します。
いまのメモ帳は、メモが決めうちで、新しいメモを足せません。メモをしまっておくには、データベースが要ります。このページでは、メモを入れる「表」を、マイグレーションという手順書を書いて作ります。
データベースと表#
データベースは、データを整理してしまっておく場所です。データは表(テーブル)に入れます。表計算ソフトのシートを思いうかべると分かりやすいでしょう。
| id | title | body |
|---|---|---|
| 1 | 牛乳を買う | 2本 |
| 2 | 数学の宿題 | (空っぽ) |
- 横の1行が、1つのデータ(メモ1つ)です。行(レコード)と呼びます
- 縦の1列が、データの項目です。列(カラム)と呼びます
idは、行ごとに付く番号です。同じ番号は2度使われません- このほかに、作った日時(
created_at)と変えた日時(updated_at)の列も持たせます
このアプリでは、memos という名前の表を作り、title(タイトル)と body(本文)の列を持たせます。
どのデータベースを使っているか#
プロジェクトを作るときに SQLite を選んだので、データベースは database/database.sqlite という1つのファイルです。.env の次の行が、それを表しています。
DB_CONNECTION=sqlite
このファイルの中には、Laravel が最初から用意した表(ユーザーの users など)が、もう作られています。
マイグレーションを作る#
表は、手で作るのではなく、マイグレーション(データベースの表を作ったり変えたりする手順書)に書いて作ります。手順書にしておくと、ほかのパソコンや本番のサーバーでも、同じ表を同じ手順で作れます。
ターミナルで、memo-app フォルダの中で次を実行します(composer run dev を動かしているのとは別のターミナルで)。
php artisan make:migration create_memos_table
database/migrations フォルダに、2026_10_05_063419_create_memos_table.php のような名前のファイルができます。頭の数字は作った日時で、マイグレーションはこの順に実行されます。
開くと、次のように書かれています。
public function up(): void
{
Schema::create('memos', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('memos');
}
upは、マイグレーションを実行したときに動く部分です。Schema::create('memos', ...)でmemosの表を作りますdownは、元に戻すときに動く部分です。memosの表を消します- 名前を
create_memos_tableにしたので、Laravel がmemosの表を作る形を最初から書いてくれています
up の中に、タイトルと本文の列を足します。
Schema::create('memos', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body')->nullable();
$table->timestamps();
});
| 書いたもの | 作られる列 |
|---|---|
$table->id() |
行ごとに自動で増える番号の id |
$table->string('title') |
短い文字を入れる title |
$table->text('body') |
長い文章を入れる body |
->nullable() |
その列を空っぽ(NULL)のままにしてもよい、という印。本文は書かなくてもよいので付ける |
$table->timestamps() |
作った日時の created_at と、最後に変えた日時の updated_at |
マイグレーションを実行する#
書いた手順書を、データベースに当てはめます。
php artisan migrate
次のように出れば、memos の表ができています。
INFO Running migrations.
2026_10_05_063419_create_memos_table .......... 8.43ms DONE
どのマイグレーションが実行済みかは、次で見られます。Ran が実行済み、Pending がまだのものです。
php artisan migrate:status
できた表の列は、次のコマンドで確かめられます。
php artisan db:table memos
id・title・body・created_at・updated_at の5つの列が並んでいれば、うまくできています。
まちがえたときは#
列を足しわすれたなど、作った表を直したいときは、最後に実行したマイグレーションを元に戻せます。
php artisan migrate:rollback
down の部分が動いて、memos の表が消えます。マイグレーションのファイルを直してから、もう一度 php artisan migrate を実行します。
注意
元に戻すと、その表に入っていたデータもいっしょに消えます。いまは中身が空なので大丈夫ですが、データを入れたあとや本番のサーバーでは気をつけてください。データを入れたあとで表を変えたいときは、ふつうは「表を変える」ための新しいマイグレーションを作ります。くわしくはマイグレーションを見てください。
次に読むページ#
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。