[Day 11] 通過Migration來建立資料表(二)

通過Migration來建立資料表(二)

 

我們昨天users的migration檔案是Laravel幫我們建立的,
但是我們還要建立另外兩個資料表-mind和board,
我們這裡使用Laravel提供的功能,
在這裡會使用到終端機(命令提示字元),
按照之前說的我們使用Cmder這個軟體來操作,
https://ithelp.ithome.com.tw/upload/images/20200924/20105694BdTFxI4A8s.png

為了方便我們先修改Cmder開啟之後的預設目錄,
點擊右下角的三條橫槓的按鈕, 出現選單, 點擊Settings
https://ithelp.ithome.com.tw/upload/images/20200924/20105694wwMDxAZRVh.png

點擊Startup的Tasks,點擊列表中的{cmd::Cmder},下面原本是
cmd /k ""%ConEmuDir%\..\init.bat" "
改成
cmd /k ""%ConEmuDir%..\init.bat" " -new_console:d:新的目錄
如:cmd /k ""%ConEmuDir%\..\init.bat" " -new_console:d:E:\Web\LaravelBlog
再點擊Save Settings按鈕
https://ithelp.ithome.com.tw/upload/images/20200924/20105694ugYdAu1SV8.png

當我們重新開啟Cmder就會直接進入我們剛才設定的目錄,
方便我們之後操作.
https://ithelp.ithome.com.tw/upload/images/20200924/20105694PrnaMpRnqE.png

接下來我們要建立新的migration檔案,
首先要建立mind資料表的檔案,
輸入以下指令(PHP所在目錄必須設成PATH):
php artisan make:migration create_mind_table --create=mind
https://ithelp.ithome.com.tw/upload/images/20200924/20105694BWF2Wl3Bj7.png

我們回到VS Code會發現多了一個create_mind_table.php建立mind資料表的檔案
https://ithelp.ithome.com.tw/upload/images/20200924/20105694v54akuJ7V9.png

預設內容如下:

<?php

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

class CreateMindTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('mind', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('mind');
    }
}

按照之前的規劃, 修改如下:

<?php

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

class CreateMindTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('mind', function (Blueprint $table) {
            //主鍵
            $table->increments('id');
            //使用者代號
            $table->integer('user_id');
            //內容
            $table->string('content', 500)->default('');
            //啟用
            $table->integer('enabled')->default(1);
            //創建及修改日期
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('mind');
    }
}

同理我們再新增一個board資料表
輸入以下指令:
php artisan make:migration create_board_table --create=board
https://ithelp.ithome.com.tw/upload/images/20200924/20105694gQ3BMPTDFS.png

並且修改如下:

<?php

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

class CreateBoardTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('board', function (Blueprint $table) {
            //主鍵
            $table->increments('id');
            //使用者代號
            $table->integer('user_id');
            //E-mail
            $table->string('email', 50)->default('');
            //圖片
            $table->string('picture', 50)->default('');
            //內容
            $table->string('content', 500)->default('');
            //啟用
            $table->integer('enabled')->default(1);
            //創建及修改日期
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('board');
    }
}