Laravel8+Vue3+Bootstrap5實作TODO List ep02:連接DB與Migration

Table of Contents

Table of Contents

使用Laravel8+Vue3+Bootstrap5實作TODO List網頁應用程式的系列文章第二篇。
本篇將介紹如何連接DB並且使用Migration功能建立資料庫的表。

教學影片

實作內容與流程

連接DB並利用Laravel的Migration功能建立資料庫的表的步驟如下,

  • 修改.env檔案
  • 利用指令建立migrations資料夾下的PHP檔案
  • 編輯建立好了migration的php檔案
  • 執行Migrate
  • 用PHPMyAdmin查看結果

修改.env檔案

編輯Laravel專案根目錄下的.env檔案。

DB_HOST=laravel-todolist_db_1
DB_PORT=3306
DB_DATABASE=develop
DB_USERNAME=root
DB_PASSWORD=secret

DB_HOST的值可以透過執行docker-compose ps指令後的結果中,取得db的Name值作為HOST,db的PORT值作為PORT。

DB_DATABSE、USERNAME、PASSWORD可以從mysql/Dockerfile中找到相關的設定。

建立migration檔案

使用Laravel Migration的指令建立migration的php檔案。

php artisan make:model todo -a
# or
php artisan make:model todo -m

編輯migration檔案

設計資料表的欄位跟預設值等設定。

...
public function up()
{
    Schema::create('todos', function (Blueprint $table) {
        $table->id();
        $table->text('body');
        $table->boolean('completed')->default(false);
        $table->datetime('created_at')->useCurrent();
        $table->datetime('updated_at')->useCurrent()->useCurrentOnUpdate();
    });
}
...

執行Migrate

用以下指令執行migrate建立資料庫中的表。

php artisan migrate
# check status
php aritsan migrate:status

PHPMyAdmin查看結果

開啟通訊埠8811的頁面進入PHPMyAdmin中查看表是否被建立。

登入時使用db的使用者跟密碼。
看到develop資料庫中有todos表就表示表已經被順利建立完成了。