新規テーブル
「demos」というテーブルを作成する場合、--createオプション を指定します。
1 |
$ php artisan make:migration create_demos_table --create=demos |
ファイルが作成されると、下記のメッセージが表示されます。
1 |
INFO Migration [database/migrations/xxxx_xx_xx_xxxxxx_create_demos_table.php] created successfully. |
ファイルは、下記の場所に保存されます。
database/migrations/
xxxx_xx_xx_xxxxxx_create_demos_table.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?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('demos', function (Blueprint $table) { $table->id(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('demos'); } }; |
項目の追加
作成されたファイルに、テーブルに追加する項目を定義していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?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('demos', function (Blueprint $table) { $table->id(); $table->string('content'); $table->string('note')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('demos'); } }; |
マイグレーションの実行
下記のコマンドで、マイグレーションを実行します。
1 |
$ php artisan migrate |
1 2 |
INFO Running migrations. xxxx_xx_xx_xxxxxx_create_demos_table ........................................................................................... 1,863ms DONE |
今回のマイグレーションで、実際に作成されたテーブルを確認します。
1 |
mysql> SHOW COLUMNS FROM `demos`; |
ロールバック
最後のマイグレーションの取消
最後のマイグレーションをロールバックします。
1 |
$ php artisan migrate:rollback |
全てロールバック
全てのマイグレーションをロールバックします。
1 |
$ php artisan migrate:reset |
参考サイト
migrationの作成と実行方法
https://www.wakuwakubank.com/posts/450-laravel-migration/