マイグレーション生成
テーブルの作成
php artisan make:migration create_hoge_table
マイグレーションは
https://readouble.com/laravel/5.8/ja/migrations.htmldatabase/migrations
フォルダに設置されます。マイグレーションの実行順をフレームワークに知らせるため、名前にタイムスタンプが含まれています。
あるテーブルにカラムを追加する
あるテーブルにカラムを追加する場合は以下のように記載します。
[column_name] は追加するカラム名にしておきましょう。
[table_name]は追加するテーブル名にしておきましょう。
php artisan make:migration add_[column_name]_to_[table_name]_table --table=[table_name]
マイグレーションの実行
php artisan migrate
全テーブルを削除しマイグレーション実行
php artisan migrate:fresh
テーブル作成時のカラム設定
コマンド | 説明 |
$table->bigIncrements('id'); | 符号なしBIGINTを使用した自動増分ID(主キー) |
$table->bigInteger('votes'); | BIGINT |
$table->char('name', 100); | オプションの文字長を指定するCHARカラム |
$table->date('created_at'); | DATEカラム |
$table->text('description'); | TEXTカラム |
$table->time('sunrise'); | TIMEカラム |
$table->timestamp('added_on'); | TIMESTAMPカラム |
$table->timestamps(); | NULL値可能なcreated_atとupdated_atカラム追加 |
$table->uuid('id'); | UUIDカラム |
カラムの修飾子を設定
メソッド | 説明 |
->comment('my comment') | カラムにコメント追加(MySQL/PostgreSQLのみ) |
->default($value) | カラムのデフォルト(default)値設定 |
->nullable($value = true) | (デフォルトで)NULL値をカラムに挿入する |
->nullable() | NULL許容 |
->useCurrent() | TIMESTAMPカラムのデフォルト値をCURRENT_TIMESTAMPに指定 |
カラム名の変更
Schema::table('users', function (Blueprint $table) { $table->renameColumn('from', 'to'); });
インデックスの設定
コマンド | 説明 |
$table->primary('question_id'); | 主キーを設定する |
$table->primary(['id', 'parent_id']); | 主キーを複数設定する |
$table->unique('email'); | uniqueキー追加 |
$table->index('state'); | 基本的なインデックス追加 |