美文网首页PHP程序员GitHub上有趣的资源
如何将 Laravel 数据表里的数据导出成 Seeder 文件

如何将 Laravel 数据表里的数据导出成 Seeder 文件

作者: Aufree | 来源:发表于2016-03-29 22:45 被阅读730次

    本文经授权转自 PHPHub 社区

    同时也关于各位关注我的 GitHub

    说明

    开发者使用 Laravel 部署一个新项目的时候, 通常会使用 seeder 快速填充本地数据以方便开发调试.

    iseed 扩展包提供了可将数据表里的数据直接转换为 seeder 文件的功能.

    本项目由 The EST Group 团队成员 @monkey 整理发布, 首发地为 PHPHub 社区.

    使用场景

    通常情况下, 我们会希望本地开发环境数据与生产完全一致, 这样开发者的开发与调试会更加的直观、有效率.
    当我们想将生产环境的数据同步到所有开发者的系统中, 此扩展包将会非常有用.

    文章的 DEMO 项目

    截图

    运行

    Demo 代码请见:
    https://github.com/zhengjinghua/est-iseed-demo

    请参照此文档运行 Demo:
    https://phphub.org/topics/1902

    文章概览

    1. 安装;
    2. 基础用法;
    3. 推荐实践;
    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 框架, 提升开发效率的微信公众号.

    相关文章

      网友评论

        本文标题:如何将 Laravel 数据表里的数据导出成 Seeder 文件

        本文链接:https://www.haomeiwen.com/subject/hsvslttx.html