iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0

Migration是一種類似資料庫版控的東西,這可以紀錄我們從以前到現在控制資料庫,包含資料表新增,更新欄位等操作,這會使得其他協作同仁可以了解資料庫如何隨時間進化。
這部分不是絕對,你也可以使用資料庫管理工具從中直接建立來使用不一定要使用Migration。

我們要先用artisan來建立migration

    php artisan make:migration create_flights_table

migration檔的範例

    <?php

      use Illuminate\Database\Migrations\Migration;
      use Illuminate\Database\Schema\Blueprint;
      use Illuminate\Support\Facades\Schema;

      return new class extends Migration
      {
          //執行新的變動
          public function up()
          {
              //新增資料表
              Schema::create('flights', function (Blueprint $table) {
                  $table->id();
                  $table->string('name');
                  $table->string('airline')->nullable();
                  $table->timestamps();
              });

              //改善已存在的資料表
              Schema::table('users', function (Blueprint $table) {
                  $table->integer('votes');
              });
          }

          //撤銷這個新的變動
          public function down()
          {
              Schema::drop('flights');
          }
      };

    ?>

當設定完以後
我們可以使用以下指令來使用我們建立的migration

php artisan migrate               // 執行目前所在以後的migration直到最新
php artisan migrate:rollback      // 回到某一個特定版本的migration 可加上 --step=xx 來指定要回到第幾個
php artisan migrate:fresh         // drop到由所有的資料表後再從頭依序執行migration
php artisan migrate:refresh       // rollback所有指令再從頭依序執行migration

上一篇
Day 6 Laravel基礎功 - MiddleWare中介層
下一篇
Day 8 Laravel基礎功 - Data Query 1
系列文
學框架永不嫌晚,從現在開始學Laravel你也可以14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言