如何將 Laravel 數據表裏的數據導出成 Seeder 文件

本文經受權轉自 PHPHub 社區php

說明

開發者使用 Laravel 部署一個新項目的時候, 一般會使用 seeder 快速填充本地數據以方便開發調試.mysql

iseed 擴展包提供了可將數據表裏的數據直接轉換爲 seeder 文件的功能.laravel

本項目由 The EST Group 團隊成員 @monkey 整理髮布, 首發地爲 PHPHub 社區.git

使用場景

一般狀況下, 咱們會但願本地開發環境數據與生產徹底一致, 這樣開發者的開發與調試會更加的直觀、有效率.
當咱們想將生產環境的數據同步到全部開發者的系統中, 此擴展包將會很是有用.github

文章的 DEMO 項目

截圖

運行

Demo 代碼請見:
https://github.com/zhengjinghua/est-isee...sql

請參照此文檔運行 Demo:
https://phphub.org/topics/1902shell

文章概覽

  1. 安裝;數據庫

  2. 基礎用法;微信

  3. 推薦實踐;app

  4. 更多用法.

接下來是詳細解說

安裝

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

也可選擇同時生成 userstopics seeder 文件:

php artisan iseed users,topics

強制覆蓋導出文件 -- force

在命令行後面帶上 force 參數, 將強制覆蓋原有生成的 seeder 文件, 以下:

php artisan iseed users --force

將直接覆蓋以前生成的 UsersTableSeeder.php 文件

根據上面兩個命令導出的 UsersTableSeeder.php 文件內容以下圖:

導出指定數據庫裏的表 -- database

使用 database 參數, 可指定數據庫裏的數據表, 以下:

php artisan iseed users --database=mysql2

推薦實踐

在實際開發的過程當中, 爲了避免影響生產環境的正常運轉, 建議使用如下方式同步開發者的 seed 數據:

  1. 將生產環境的備份數據導入到某一個開發者的電腦中;

  2. 此開發者運行 php artisan iseed ... 生成指定的 seeder 文件;

  3. 將 seeder 文件提交版本管理, 其餘人同步更新並導入.

更多用法

關於其它更加詳盡的命令行, 如: max, prerun, postrun 等使用可查看 原文檔.


歡迎關注 LaravelTips, 一個專一於爲 Laravel 開發者服務, 致力於幫助開發者更好的掌握 Laravel 框架, 提高開發效率的微信公衆號.

相關文章
相關標籤/搜索