---
# System prepended metadata

title: Database Migration(快速手冊)
tags: [laravel]

---

---
tags: laravel
---
# Database Migration(快速手冊)

![](https://i.imgur.com/y7hiIY6.jpg)



## 建立Migration的指令

php artisan make:migration {action}_{table}_table
php artisan make:migration create_items_table

## 常用欄位設定

$table->id(欄位名稱)  自動流水號
$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