生成遷移
使用 Artisan make:migration
來創建遷移:
php artisan make:migration create_users_table
新的遷移文件會被放置在 database/migrations
目錄中。每個遷移文件的名稱都包含了一個時間戳,以便讓 Laravel 確認遷移的順序。
--table
和 --create
選項可用來指定數據表的名稱,或是該遷移被執行時是否將創建的新數據表。這些選項需在預生成遷移文件時填入指定的數據表:
php artisan make:migration create_users_table --create=users
php artisan make:migration add_votes_to_users_table --table=users
如果你想為生成的遷移指定一個自定義輸出路徑,則可以在運行 make:migration
命令時添加 --path
選項。給定的路徑必須是相對於應用程序的基本路徑。
遷移結構
遷移類通常會包含兩個方法:up
和 down
。up
方法可為數據庫添加新的數據表、字段或索引,而 down
方法則是 up
方法的逆操作。
你可以在這兩個方法中使用 Laravel 數據庫結構生成器來創建以及修改數據表。若要了解 Schema
生成器中的所有可用方法,可查詢文檔。以下的遷移實例會創建一張 flights
數據表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateFlightsTable extends Migration { /** * 運行數據庫遷移 * * @return void */ public function up() { Schema::create('flights', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('airline'); $table->timestamps(); }); } /** * 回滾數據庫遷移 * * @return void */ public function down() { Schema::drop('flights'); } }
運行遷移
使用 Artisan 命令 migrate
來運行所有未完成的遷移:
php artisan migrate
在生產環境強制執行遷移
一些遷移操作是具有破壞性的,這意味着可能會導致數據丟失。為了防止有人在生產環境中運行這些命令,系統會在這些命令被運行之前與你進行確認。如果要強制忽略系統的提示運行命令,則可以使用 --force
標記:
php artisan migrate --force