---
# System prepended metadata

title: Database Migration

---

# Database Migration


建立Migration的指令
php artisan make:migration {action}_{table}_table
php artisan make:migration create_items_table

常用欄位設定
$table->bigIncrements(欄位名稱) 自動流水號
$table->boolean(欄位名稱) 布林值
$table->integer(欄位名稱) 整數
$table->string(欄位名稱,長度) 長度為xx的字串
$table->text(欄位名稱) 長字串
$table->date(欄位名稱) 日期
$table->timestamp(欄位名稱) 時間戳記
$table->datetime(欄位名稱) 日期加時間

常用欄位方法
nullable() 欄位可為空值
default($value) 欄位預設值
unique() 唯一欄位
unsigned() 不為負數的欄位
change() 修改欄位而非新增欄位

Migration檔案的撰寫範例
 class CreateItemsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('items', function (Blueprint $table) {
            $table->bigIncrements('id');
            //varchar，長度為200
            $table->string('title',200); 
            //正整數，預設為0，可為空值
            $table->integer('price')->default(0)->nullable()->unsigned();
            $table->string('size',50)->nullable();
            $table->boolean('enabled')->default(true);
            $table->string('pic',255)->nullable();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('items');
    }
}
執行migrate指令
//往前走
php artisan migrate
//往後退
php artisan migrate:rollback

發表於  HackMD
 280
讚賞 收藏 訂閱