這裡記錄如何運用 migrate 及 Seeds 來建立自動部署流程

(1) Migrate 建立 schema

artisan make:migration 指令 產生 migragion 檔案

php artisan make:migration create_資料表名稱_table

接著就能在 databases/migrations/ 看到新增的 migration 檔案

日期_create_資料表名稱_table.php

可以依照 Schema builder 格式構建資料表schema

<?php
    public function up()
    {
        Schema::create('資料表名稱', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title');
            $table->string('detail');
            $table->timestamps();
        });
    }

執行 migrate 自動在 Database 建立 table

php artisan migrate

(2) 新增資料

透過資料庫操作或者程式方式來建立資料

(3) 透過 iseed 將資料表內容建立成 seeds

這裏會透過 iseed 擴充來將資料表內容建立成 seed

開啟 composer.json 並且 require 增加 orangehill/iseed.

"require": {
	"orangehill/iseed": "dev-master"
}

執行安裝

composer update

or 直接安裝

composer require --dev orangehill/iseed:dev-master

將資料表匯出成 seeds

php artisan iseed 資料表名稱, 資料表2名稱

如果一次要製作多個表,則可以參考以下流程

取得資料庫 table

show tables

將table 整理為 iseed 指令,記得都要換行

php artisan iseed table1
php artisan iseed table2
php artisan iseed table3
php artisan iseed table4
...

接到指令中,會一一執行

(4) 自動部署資料表

只要將前面的 migrate 及 seeds 檔案分享給其他人

他們就能夠快速的部署同樣的資料庫

migrate:refresh 可以移除資料庫中的資料表,並且重新依照 migrate 再建立 –seed 可以執行所有 database seeds

php artisan migrate:refresh --seed

若是首次建立,則執行下指令即可

php artisan migrate --seed

Migrate generator

自動生成 Migrate 套件 https://github.com/Xethron/migrations-generator