iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Modern Web

Laravel 30天速成筆記系列 第 8

【Day8】Migration 基礎篇

  • 分享至 

  • xImage
  •  

昨天我們學了 Eloquent ORM 操作資料庫,今天要來認識 Migration —— Laravel 幫我們管理資料表的「時光機」


什麼是 Migration?

想像你的資料表是一棟大樓,Migration 就是它的「建築藍圖」:

  • 要蓋幾層(新增欄位)
  • 要改什麼(修改欄位)
  • 要拆掉什麼(刪除欄位)

為什麼要用 Migration?

  1. 團隊協作方便:大家用同一份資料表設計,不用怕不同步的問題
  2. 可回溯:可以回到之前的版本(就像 Undo)!
  3. 自動化:用指令就能建立資料表,不用自己進到資料庫手動新增

建立 Migration

php artisan make:migration create_products_table

這會在 database/migrations/建立一個檔案,例如:

2025_08_12_123456_create_products_table.php

編寫 Migration
打開檔案,在 up() 方法定義資料表結構:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->integer('price');
        $table->timestamps();
    });
}

在 down() 方法定義回滾動作:

public function down()
{
    Schema::dropIfExists('products');
}

執行 Migration

php artisan migrate

執行後會在資料庫建立 products 表格

新增欄位
假設要在 products 加上 description 欄位:

php artisan make:migration add_description_to_products_table --table=products

在 up() 中加上:

$table->text('description')->nullable();

再執行:

php artisan migrate

回滾 Migration
撤銷最近一次 Migration:

php artisan migrate:rollback

清空所有資料表並重新執行:

php artisan migrate:fresh

小結

  • Migration 是資料表的「藍圖」+「時光機」
  • php artisan make:migration 建立藍圖檔
  • php artisan migrate 執行藍圖
  • rollback 與 fresh 可以回到過去或重來一次

上一篇
【Day7】使用 Eloquent ORM 操作資料庫
下一篇
【Day9】Rollback 與 Migration 安全修改技巧
系列文
Laravel 30天速成筆記9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言