API バージョンのコメント掲示板を開発するために,まず投稿されたコメントデータを格納するための comments テーブルをデータベースに作成します.Laravel ではマイグレーションファイルを実行することでデータベースにテーブルを作成します.次のコマンドでそのマイグレーションファイルを作成します.なお,テーブルは小文字の複数形で作成することに注意してください.
vagrant@ubuntu2204 CommentAPI $ php artisan make:migration create_comments_table --create=comments ⏎
INFO Migration [database/migrations/2023_12_16_135311_create_comments_table.php] created successfully.
vagrant@ubuntu2204 CommentAPI $
上のコマンドで database/migrations フォルダにマイグレーションファイルが作成されました.このファイル名には make:migration
コマンドを実行した日時の情報が設定されています.なお,up()
関数はマイグレーション時に実行され,down()
関数はロールバック時に実行されます.
database/migrations/yyyy_mm_dd_hhmmss_create_comments_table.php
<?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('comments', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('comments');
}
};
comments テーブルには件名 (title) と本文 (body) を格納するための属性を持たせます.次のとおり,up()
関数に記載します.
database/migrations/yyyy_mm_dd_hhmmss_create_comments_table.php (抜粋)
public function up(): void
{
Schema::create('comments', function (Blueprint $table) {
$table->id();
$table->string('title', 255);
$table->text('body');
$table->timestamps();
});
}
マイグレーションを実行してテーブルを作成します.
vagrant@ubuntu2204 CommentAPI $ php artisan migrate:status ⏎ ERROR Migration table not found. vagrant@ubuntu2204 CommentAPI $ php artisan migrate ⏎ INFO Preparing database. Creating migration table ................................... 13ms DONE INFO Running migrations. 2014_10_12_000000_create_users_table ....................... 19ms DONE 2014_10_12_100000_create_password_reset_tokens_table ........ 8ms DONE 2019_08_19_000000_create_failed_jobs_table ................. 37ms DONE 2019_12_14_000001_create_personal_access_tokens_table ...... 27ms DONE 2023_12_16_135311_create_comments_table ..................... 9ms DONE vagrant@ubuntu2204 CommentAPI $ php artisan migrate:status ⏎ Migration name ........................................ Batch / Status 2014_10_12_000000_create_users_table ......................... [1] Ran 2014_10_12_100000_create_password_reset_tokens_table ......... [1] Ran 2019_08_19_000000_create_failed_jobs_table ................... [1] Ran 2019_12_14_000001_create_personal_access_tokens_table ........ [1] Ran 2023_12_16_135311_create_comments_table ...................... [1] Ran vagrant@ubuntu2204 CommentAPI $