遷移
在 Laravel 中控制資料庫是使用遷移。與工匠一起建立遷移:
php artisan make:migration create_first_table --create=first_table
這將生成 CreateFirstTable 類。在 up 方法中,你可以建立列:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateFirstTable extends Migration
{
public function up()
{
Schema::create('first_table', function (Blueprint $table) {
$table->increments('id');
$table->string('first_string_column_name');
$table->integer('secont_integer_column_name');
$table->timestamps();
});
}
public function down()
{
Schema::drop('first_table');
}
}
最後,要執行所有遷移類,你可以執行 artisan 命令:
php artisan migrate
這將在數據庫中建立表和列。其他有用的遷移命令是:
php artisan migrate:rollback
- 回滾上次資料庫遷移php artisan migrate:reset
- 回滾所有資料庫遷移php artisan migrate:refresh
- 重置並重新執行所有遷移php artisan migrate:status
- 顯示每次遷移的狀態
修改現有表
有時,你需要更改現有的表結構,如 renaming/deleting
列。你可以通過建立新的遷移來完成此任務。並在遷移的 up
方法中完成。
//Renaming Column.
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->renameColumn('email', 'username');
});
}
上面的例子將 users table
的 email column
重新命名為 username
。雖然下面的程式碼從 users
表中刪除了一列 username
。
IMPROTANT:要修改列,你需要將 doctrine/dbal
依賴項新增到專案的 composer.json
檔案中並執行 composer update
以反映更改。
//Droping Column
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('username');
});
}