Medium 清新閱讀版
:連結
這是本系列的最後一篇介紹文,今天讓我們探討「缺乏 Migration Files 與 Factory Files」的 Legacy 情境吧!
很多時候我們會遇到沒有 Migration Files 或 Factory Files 的 Legacy Codebase,原因大概有以下幾種:
以上三種情況都滿常見的,而解法也不難,甚至已有神人幫我們做成套件了。今天就讓我們來看看其中的2個套件吧!
針對「缺乏的 Migration Files」 情境,kitloong/laravel-migrations-generator 這個套件可以幫助我們針對已存在資料庫,以程式的方式產生 Migration File,步驟如下:
首先讓我們安裝 kitloong/laravel-migrations-generator
這個套件:
composer require --dev "kitloong/laravel-migrations-generator"
接著依照 Migration Files 缺乏的情境來看:
假如缺乏全部的 Migration Files,此時可執行以下指令,讓 kitloong/laravel-migrations-generator
連上預設資料庫連線,並依據各資料表的欄位架構,生成對應的 Migration File:
php artisan migrate:generate
假如是缺乏部分的 Migration Files,則可使用指定或排除資料表的方式,來生成對應的 Migration File:
# 假設資料庫中有 table1,table2,table3,table4,table5
# 其中 table1, table2 已有 Migration File
# 指定要生成的資料表
php artisan migrate:generate --tables="table3,table4,table5"
# 或是用排除的
php artisan migrate:generate --ignore="table1,table2"
指定 Connection:
php artisan migrate:generate --connection="connection_name"
實際上它還有其他好用的模式可用,這邊只講述最重要的部分,其他的部分大家可到它的 Github 上瀏覽。
針對「缺乏的 Migration Files」 情境,另一個 TheDoctor0/laravel-factory-generator 套件可幫助我們生成 Factory Files,步驟如下:
首先同樣先讓我們安裝 TheDoctor0/laravel-factory-generator
這個套件:
composer require thedoctor0/laravel-factory-generator --dev
接著依照 Factory Files 缺乏的情境來看:
假如缺乏所有 Model 的 Factory File,可以用以下指令一鍵生成:
php artisan generate:factory
假如是缺乏部分 Model 的 Factory File,則可使用以下指令
# 僅生成 User 及 Company
php artisan generate:factory User Company
以上就是今天的介紹,希望對大家有所幫助!