piyook / csvseeder
将数据从.csv文件中种入Laravel数据库表
v1.0.1
2022-05-13 08:29 UTC
Requires
- php: >=8.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.5
README
CSV数据库种子工具服务
一个简单的Laravel工具包,用于将CSV数据种入数据库表。
探索文档
关于项目
一个简单的Laravel工具,允许使用CSV格式的文件数据快速填充数据库。
一个自定义Artisan make:命令构建CSV种子类,然后从存储在数据库/data文件夹中的CSV文件中导入数据。
构建工具
- Laravel 9
入门
可以将代码添加到新的Laravel安装或现有项目中。
先决条件
Laravel 8+
安装
使用composer安装包
composer require --dev piyook/csvseeder
使用
开发了一个自定义Artisan make命令,以便更容易地搭建 Seeder Class 以导入CSV文件。
CSV数据文件必须与表名相同,并存储在数据库/data文件夹中。
要使用Artisan命令,只需输入
php artisan make:csvseeder <name> <columns> <path> (optional)
其中要种子的表名作为make命令的参数传递,并附带一个列名数组[]。
注意,如果表名是复数,则类名将使用单数形式。
如果要将种子类存储在除database/seeders以外的其他位置,则可以指定此新路径作为最后一个选项。
例如,一个名为"examples"的表的新种子类将导入存储在数据库/data中的"examples.csv"文件,将保存到数据库/seeders目录中,文件名为"ExampleCSV.php"。
php artisan make:csvseeder examples [col1,col2,col3,col4]
然后
php artisan migrate:fresh php artisan db:seed --class=ExampleCSV
在运行包含--seed选项的迁移作为迁移的一部分进行通用数据库种子的之前,不要忘记在种子文件夹中的DatabaseSeeder类中注册新的CSV种子
测试
通常使用Ochestra Testbench在包中运行单元测试和功能测试,但种子功能无法工作(未找到种子类)。
设置了一个完整的单独的Laravel测试项目,并将测试、phpunit.xml以及包测试文件夹中的数据库/data、database/migration文件夹和文件复制到项目中的相关位置,以设置测试环境。
所有功能测试都可通过Artisan test命令运行。
联系
电子邮件:piyook@piyook.com
项目链接:[laravelcsvseed]