ショコラ
Laravel マイグレーションを実行するには?
「./artisan migrate」でキメマス。
マイグレーションで、データベースにテーブルを作成するんだよね。
もっさん先輩
マイグレーションを実行するには↓以下のコマンドを実行します。データベースにテーブルが存在しない場合には、差分のみ作成されます。
./artisan migrate
特定のテーブルのみ更新するには↓以下のようにします。
./artisan migrate:refresh --path=database/migrations/2022_09_16_000000_create_columns_table.php
テーブルを作成するのはこちら
./artisan make:migration create_items_table
テーブルを作成&モデルの作成はこちら
./artisan make:migration create_items_table -m
テーブルを削除するにはこちら
./artisan migrate:refresh
全テーブルを削除してテーブルを用意するのはこちら
./artisan migrate:refresh --seed
マイグレーションで定義できるカラムの型
マイグレーションで定義できるカラムの型についてまとめました。
プライマリーキーを設定する。
$table->increments('{カラム名}');
プライマリーキーを設定する。
$table->bigIncrements('{カラム名}');
integer型 で定義する。
$table->integer('{カラム名}');
bigInteger型 で定義する。
$table->bigInteger('{カラム名}');
float型 で定義する。
$table->float('{カラム名}');
double型 で定義する。
$table->double('{カラム名}');
char型 で定義する。
$table->char('{カラム名}');
string型 で定義する。
$table->string ('{カラム名}');
text型 で定義する。
$table->text('{カラム名}');
longtext型 で定義する。
$table->longtext('{カラム名}');
boolean型 で定義する。
$table->boolean ('{カラム名}');
date型 で定義する。
$table->date('{カラム名}');
datetime型 で定義する。
$table->datetime('{カラム名}');
timestamps を定義する。
$table->timestamps();
created_at、updated_dt のカラムが追加されます。
softDeletes を定義する。
$table->softDeletes();
deleted_at のカラムが追加されます。
ポストグレスでは、カラム名は↓のように対応していました。
↑で使ったマイグレーションのファイルです。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('columns', function (Blueprint $table) {
$table->increments('increments');
$table->integer('integer');
$table->bigInteger('bigInteger');
$table->float('float');
$table->double('double');
$table->char('char');
$table->string ('string');
$table->text('text');
$table->longtext('longtext');
$table->boolean ('boolean');
$table->date('date');
$table->datetime('datetime');
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('columns');
}
};
NULL を許容するには カラム に nullable を追加します。
->nullable()
↓のようになります。
$table->text('{カラム名}')->nullable();
以上