Home  >  Article  >  Backend Development  >  如何将 Laravel 数据表里的数据导出成 Seeder 文件

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

WBOY
WBOYOriginal
2016-06-23 13:12:381015browse

本文经授权转自 PHPHub 社区

说明

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

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

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

使用场景

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

文章的 DEMO 项目

截图

运行

Demo 代码请见:

https://github.com/zhengjinghua/est-isee...

请参照此文档运行 Demo:

https://phphub.org/topics/1902

文章概览

  1. 安装;

  2. 基础用法;

  3. 推荐实践;

  4. 更多用法.

接下来是详细解说

安装

1). 直接运行以下命令安装扩展包

composer require intervention/image

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

在命令行后面带上 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 框架, 提升开发效率的微信公众号.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn