この記事のゴール
- Laravel でデータベースのテーブルを作成する
前提
- Laravel の開発環境構築済
- データベースの基礎知識がある
Laravel の開発環境構築はこちらの記事を参考にしてください。
この記事でこれからやること
- マイグレーションファイルの作成(テーブル作成スクリプト)
- マイグレーション実行(テーブル作成)
- テーブルの存在確認
マイグレーションファイルの作成(テーブル作成スクリプト)
次のように簡単なテーブルを作成します。
| # | 論理名 | 物理名 | 型 | オプション |
| 1 | ID | id | UNSIGNED BIGINT(20) | 主キー、自動採番 |
| 2 | やること | todo | VARCHAR(255) | |
| 3 | 完了 | done | TINYINT | |
| 4 | 作成日時 | created_at | TIMESTAMP | |
| 5 | 更新日時 | updated_at | TIMESTAMP |
ターミナル上で sail-shell に接続した状態のプロジェクトトップフォルダで
次のコマンドを実行し、マイグレーションファイルを作成します。
php artisan make:migration create_todos_table

コマンド実行に成功すると、フォルダ [database\migrations\] の中に、
[2023_05_26_041820_create_todos_table.php] のようなファイル名のファイルができます。
ファイル名の最初の方の数字は作成日時になっています。

このファイルを編集していきます。次のように16行目、17行目に追記して保存してください。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('todo', function (Blueprint $table) {
$table->id();
$table->string('todo', 255);
$table->tinyInteger('done');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('todo');
}
};
マイグレーション実行(テーブル作成)
sail-shell で次のコマンドを実行してテーブル作成をします。
php artisan migrate

このコマンドは、未実行のマイグレーションファイルだけを実行してくれます。
これでテーブル作成ができました。
テーブルの存在確認
データベーステーブルの存在確認をする方法は、phpMyAdminやA5SQL Mk2など
いくつかありますが、せっかくターミナルを使っているので、
ここではMySQL CLIを使ってコマンドで確認します。
sail-shell で次のコマンドを実行してください。
mysql -h mysql -u sail -p
※ここでのホスト名やユーザー名、パスワードは、プロジェクトトップにある
「.env」ファイルを確認してください。

次のコマンドでデータベース名を確認します。
show databases;

次のコマンドでデータベースを選択します。
use webapp;

次のコマンドでテーブル一覧を表示します。
show tables;

テーブル名「todos」が表示されていることが確認できました。
一応、次のコマンドでカラム定義の確認をしておきましょう。
show columns from todos;

想定通りに定義されていました。次のコマンドで接続解除しておきましょう。
\q

今回は以上です。お疲れさまでした。
- 0
- 0
- 0
- 0



コメント