Laravel(6系)の公式ページで紹介されているマイグレーションについて簡単にまとめました。
##マイグレーションファイルの作成
マイグレーションファイルを作成する時の基本的な書き方
ターミナル
php artisan make:migration すること_テーブル名_table
新しくテーブルを作成する時はオプションに--createを指定します。
ターミナル
php artisan make:migration create_テーブル名_table --create=テーブル名
php artisan make:migration create_users_table --create=users
既存のテーブルに変更や追加をする時はオプションに--tableを指定します。
ターミナル
php artisan make:migration すること_テーブル名_table --table=テーブル名
php artisan make:migration add_pic_to_posts_table --table=posts
##マイグレーションの記述
.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class □□○○Table extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('テーブル名', function (Blueprint $table) {
// マイグレーション実行した時の処理
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('テーブル名', function (Blueprint $table) {
// ロールバックした時の処理
// up()の処理を取り消す
});
}
}
###よく使うカラム
コマンド | 説明 |
---|---|
$table->integer('votes'); | INTEGERカラム |
$table->unsignedBigInteger('votes'); | 符号なしBIGINTカラム |
$table->string('name', 100); | 文字長を指定したVARCHARカラム |
$table->text('description'); | TEXTカラム |
$table->timestamps(0); | 有効(全体)桁数指定でNULL値可能なcreated_atとupdated_atカラム追加 |
$table->boolean('confirmed'); | BOOLEANカラム |
stringはnameなど短い文字列、textはコメントなど長い文字列。 |
###よく使う修飾子
修飾子 | 説明 |
---|---|
->after('column') | 指定カラムの次に他のカラムを設置 |
->autoIncrement() | 整数カラムを自動増分ID(主キー)へ設定 |
->charset('utf8') | カラムへキャラクタセットを指定 |
->collation('utf8_unicode_ci') | カラムへコレーションを指定 |
->comment('my comment') | カラムにコメント追加 |
->default($value) | カラムのデフォルト(default)値設定 |
->first() | カラムをテーブルの最初(first)に設置する |
->nullable($value = true) | (デフォルトで)NULL値をカラムに挿入する |
->storedAs($expression) | stored generatedカラムを生成 |
->unsigned() | 整数カラムを符号なしに設定 |
##マイグレーションの実行
マイグレーションファイルのup()の処理を実行する時、migrateを使います。
ターミナル
php artisan migrate
マイグレーションファイルのdown()の処理を実行する時、rollbackを使います。
ターミナル
php artisan migrate:rollback
rollbackにstepオプションを付けることで、巻き戻す数を指定できます。
ターミナル
php artisan migrate:rollback --step=5