Migration是一種類似資料庫版控的東西,這可以紀錄我們從以前到現在控制資料庫,包含資料表新增,更新欄位等操作,這會使得其他協作同仁可以了解資料庫如何隨時間進化。
這部分不是絕對,你也可以使用資料庫管理工具從中直接建立來使用不一定要使用Migration。
我們要先用artisan來建立migration
php artisan make:migration create_flights_table
migration檔的範例
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
//執行新的變動
public function up()
{
//新增資料表
Schema::create('flights', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('airline')->nullable();
$table->timestamps();
});
//改善已存在的資料表
Schema::table('users', function (Blueprint $table) {
$table->integer('votes');
});
}
//撤銷這個新的變動
public function down()
{
Schema::drop('flights');
}
};
?>
當設定完以後
我們可以使用以下指令來使用我們建立的migration
php artisan migrate // 執行目前所在以後的migration直到最新
php artisan migrate:rollback // 回到某一個特定版本的migration 可加上 --step=xx 來指定要回到第幾個
php artisan migrate:fresh // drop到由所有的資料表後再從頭依序執行migration
php artisan migrate:refresh // rollback所有指令再從頭依序執行migration