這裡記錄如何運用 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