本文經受權轉自 PHPHub 社區php
開發者使用 Laravel 部署一個新項目的時候, 一般會使用 seeder 快速填充本地數據以方便開發調試.mysql
iseed 擴展包提供了可將數據表裏的數據直接轉換爲 seeder 文件的功能.laravel
本項目由 The EST Group 團隊成員 @monkey 整理髮布, 首發地爲 PHPHub 社區.git
一般狀況下, 咱們會但願本地開發環境數據與生產徹底一致, 這樣開發者的開發與調試會更加的直觀、有效率.
當咱們想將生產環境的數據同步到全部開發者的系統中, 此擴展包將會很是有用.github
Demo 代碼請見:
https://github.com/zhengjinghua/est-isee...sql
請參照此文檔運行 Demo:
https://phphub.org/topics/1902shell
安裝;數據庫
基礎用法;微信
推薦實踐;app
更多用法.
接下來是詳細解說
1). 直接運行如下命令安裝擴展包
composer require orangehill/iseed
2). 在你的 config/app.php
文件中添加 Service Provider
'providers' => [ ... Orangehill\Iseed\IseedServiceProvider::class, ],
安裝結束, 就這麼簡單.
在 php artisan iseed
後面帶上本地數據表的名稱, 可直接將數據庫表的內容轉換爲 seeder 文件.
以下可生成 users
表的 seeder 文件:
php artisan iseed users
也可選擇同時生成 users
和 topics
seeder 文件:
php artisan iseed users,topics
在命令行後面帶上 force 參數, 將強制覆蓋原有生成的 seeder 文件, 以下:
php artisan iseed users --force
將直接覆蓋以前生成的 UsersTableSeeder.php
文件
根據上面兩個命令導出的 UsersTableSeeder.php
文件內容以下圖:
使用 database
參數, 可指定數據庫裏的數據表, 以下:
php artisan iseed users --database=mysql2
在實際開發的過程當中, 爲了避免影響生產環境的正常運轉, 建議使用如下方式同步開發者的 seed 數據:
將生產環境的備份數據導入到某一個開發者的電腦中;
此開發者運行 php artisan iseed ...
生成指定的 seeder 文件;
將 seeder 文件提交版本管理, 其餘人同步更新並導入.
關於其它更加詳盡的命令行, 如: max, prerun, postrun 等使用可查看 原文檔.
歡迎關注 LaravelTips
, 一個專一於爲 Laravel 開發者服務, 致力於幫助開發者更好的掌握 Laravel 框架, 提高開發效率的微信公衆號.