マイグレーションとは
データベースのバージョン管理機能
アプリケーションのデータベースを定義および共有することができる
マイグレーションファイルの生成
①migrationコマンドを実行
database/migrationsディレクトリに配置される
php artisan make:migration ファイル名
②生成されたマイグレーションファイルのupメソッドの中に記述していく
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
③マイグレーション実行
migrateコマンド実行でテーブルが生成される
php artisan migrate
カラム作成
生成できるデータ型(一例)
$table->boolean(カラム名); // BOOLEAN型
$table->char(カラム名, サイズ); // 文字列カラム、第二引数で長さを指定
$table->date(カラム名); // DATE型 日付カラム
$table->dateTime(カラム名); // 日時カラム
$table->id(); // idカラム
$table->integer(カラム名); // 数値カラム
$table->softDelete(); // deleted_atカラム追加
$table->text(カラム名, サイズ); // 文字列カラム
$table->timestamp(); // created_at , updated_atカラム追加
カラムに属性を与えるメソッド
->nullable() // カラムにNULLを許可する
->default(デフォルト値) // カラムのデフォルト値を指定
->unsigned() // 数値型のカラムを符号なしにする
インデックスの付与と削除を行うメソッド
->primary(カラム名) // プライマリーキーを付与
->unique(カラム名) // ユニークキーを付与する
->index(カラム名) // インデックスを付与
->dropPrimary(プライマリーキー名) // プライマリーキーを削除
->dropUnique(ユニークキー名) // ユニークキーを削除
->dropIndex(インデックス名) // インデックスを削除
ロールバック
マイグレーションで作成・更新したテーブルを元に戻したり削除する
php artisan migrate:rollback // 最新のbatchをロールバック
--step バッチ番号 // バッチ番号を指定するオプション
※バッチの確認はマイグレーションの実行時に作成されるmigrationsテーブルのbatchカラムでできる
php artisan migrate:reset // 全てのマイグレーションをロールバック
php artisan migrate:refresh // 全てのマイグレーションをロールバック後再度マイグレーション実行
php artisan migrate:fresh // データベースからすべてのテーブルを削除したあと、migrateコマンドを実行する