本文へ移動
Laravel Tips

はじめての方へ・ステップ 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 の次の行が、それを表しています。

ini
DB_CONNECTION=sqlite

このファイルの中には、Laravel が最初から用意した表(ユーザーの users など)が、もう作られています。

マイグレーションを作る#

表は、手で作るのではなく、マイグレーション(データベースの表を作ったり変えたりする手順書)に書いて作ります。手順書にしておくと、ほかのパソコンや本番のサーバーでも、同じ表を同じ手順で作れます。

ターミナルで、memo-app フォルダの中で次を実行します(composer run dev を動かしているのとは別のターミナルで)。

bash
php artisan make:migration create_memos_table

database/migrations フォルダに、2026_10_05_063419_create_memos_table.php のような名前のファイルができます。頭の数字は作った日時で、マイグレーションはこの順に実行されます。

開くと、次のように書かれています。

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 の中に、タイトルと本文の列を足します。

php
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

マイグレーションを実行する#

書いた手順書を、データベースに当てはめます。

bash
php artisan migrate

次のように出れば、memos の表ができています。

text
INFO  Running migrations.

2026_10_05_063419_create_memos_table .......... 8.43ms DONE

どのマイグレーションが実行済みかは、次で見られます。Ran が実行済み、Pending がまだのものです。

bash
php artisan migrate:status

できた表の列は、次のコマンドで確かめられます。

bash
php artisan db:table memos

id・title・body・created_at・updated_at の5つの列が並んでいれば、うまくできています。

まちがえたときは#

列を足しわすれたなど、作った表を直したいときは、最後に実行したマイグレーションを元に戻せます。

bash
php artisan migrate:rollback

down の部分が動いて、memos の表が消えます。マイグレーションのファイルを直してから、もう一度 php artisan migrate を実行します。

注意

元に戻すと、その表に入っていたデータもいっしょに消えます。いまは中身が空なので大丈夫ですが、データを入れたあとや本番のサーバーでは気をつけてください。データを入れたあとで表を変えたいときは、ふつうは「表を変える」ための新しいマイグレーションを作ります。くわしくはマイグレーションを見てください。

次に読むページ#

公式ドキュメント(英語)

2026年10月5日時点の内容をもとに、日本語でまとめています。

ページの一覧