iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 13
1
Modern Web

PHP laravel的邂逅系列 第 13

DAY13-Database介紹 PART 2

  • 分享至 

  • xImage
  •  

DAY12-Database介紹 PART 2

今天來說說migration吧

要新增資料庫資料前,必須先知道一個重要的功能叫做 migration ,他就像是資料庫的版本控制,你不用再辛苦的在資料庫中建立各種欄位,當你主機換還需要重新設定,這是多麽的麻煩,有了 migration ,只要在檔案內建立一次資料,後續只要下指令就可以幫你完成資料庫欄位建置,這樣是不是節省很多時間啊,那我們快來看看囉

新增migration指令,來建立一個最新消息的資料庫的 migration ,在 table 後面還加有--create的參數,他會而外建立好要開的資料表的名稱和一些相關的程式碼。

//不使用create參數
php artisan make:migration create_news_table

    public function up()
    {
        //
    }

    public function down()
    {
        //
    }


//使用create參數
php artisan make:migration create_news_table --create=news

   public function up()
    {
        Schema::create('news', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

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


建立成功會像上圖一樣,接著看看檔案在哪裡,database/migrations資料夾的最下面會看到剛剛新增的news檔案,看看上面的程式碼來做說明。

Schema::create 會建立一個新的資料表,後面接著第一個參數是string的資料表名稱,第二個是閉包,接收 Blueprint 物件用來定義新的資料表。

要修改資料表名稱,可使用 rename 方法

Schema::rename($from, $to);

指定特定連線來操作,可使用 Schema::connection 方法:

Schema::connection('foo')->create('users', function($table)
{
    $table->increments('id');
});

移除資料表,可使用 Schema::drop 方法,在上面會看到兩個 Function ,up 和 down , up 就是建立 migrateion 的時候會執行 up 裡面的東西,當 rollback 的時候就會執行 down 的 Function

Schema::drop('users');

Schema::dropIfExists('users');

在create的閉包裡面來看看需要怎麼寫程式碼,看到$table的變數,第一行把id設為increments為累加的數字,通常都會把id當作主鍵來使用,因為是唯一值具有索引和一定有值的特性,就可以透過主鍵來查到需要的資料。

在看到第二行timestamps,這行會在資料表裡面建立created_at欄位和updated_at,簡單來講建立資料就會有created_at的時間,更新資料就會有updated_at的時間

Schema::create('news', function (Blueprint $table) {
    $table->increments('id');
    $table->timestamps();
});

上一篇
DAY12-Database介紹 PART 1
下一篇
DAY14-laravel sql 語法介紹
系列文
PHP laravel的邂逅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言