abdulmannans / seed-spotter
一个用于发现数据库与种子之间的差异的包
v1.0.4
2024-09-19 16:04 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- pestphp/pest: ^1.0|^2.0
- pestphp/pest-plugin-laravel: ^1.0|^2.0
README
SeedSpotter 是一个 Laravel 扩展包,帮助您检测数据库种子文件与实际数据库内容之间的差异。它是维护 Laravel 应用程序数据完整性的重要工具。
功能
- 比较种子数据与实际数据库内容
- 检测缺失、多余或不同的行
- 在比较中忽略指定的列
- 易于使用的 Artisan 命令
- 通过 Laravel 的配置系统进行配置
安装
您可以通过 composer 安装此包
composer require abdulmannans/seed-spotter
此包将自动注册其服务提供者。
用法
使用 Artisan 命令
使用 SeedSpotter 最简单的方法是通过其 Artisan 命令
php artisan seed-spotter:compare "Database\Seeders\YourSeeder" --table=your_table_name
此命令将运行比较并在您的控制台中显示结果。
在代码中使用
您还可以在 PHP 代码中使用 SeedSpotter
use Abdulmannans\SeedSpotter\Facades\SeedSpotter; $result = SeedSpotter::compare(YourSeederClass::class, "your_table_name"); if ($result["has_discrepancies"]) { foreach ($result["discrepancies"] as $discrepancy) { // Handle discrepancy } } else { // Data is in sync }
配置
要自定义 SeedSpotter 的行为,您可以发布配置文件
php artisan vendor:publish --provider="Abdulmannans\SeedSpotter\SeedSpotterServiceProvider" --tag="config"
这将创建一个 config/seed-spotter.php
文件。以下是可用的选项
return [ // The default table to check if not specified "table" => "users", // Columns to ignore in comparisons "ignore_columns" => ["created_at", "updated_at"], ];
测试
要运行包测试,请使用
composer test
贡献
欢迎贡献!请随时提交一个 Pull Request。
许可
MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件。
鸣谢
- Abdul Mannan (https://github.com/abdulmannans)
- 所有贡献者
支持
如果您发现任何与安全相关的问题,请通过电子邮件samannan1999@gmail.com而不是使用问题跟踪器。
由 Abdul Mannan 用 ❤️ 制作(https://github.com/abdulmannans)