abdulmannans/seed-spotter

一个用于发现数据库与种子之间的差异的包

v1.0.4 2024-09-19 16:04 UTC

This package is auto-updated.

Last update: 2024-09-20 07:46:28 UTC


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)。有关更多信息,请参阅许可证文件

鸣谢

支持

如果您发现任何与安全相关的问题,请通过电子邮件samannan1999@gmail.com而不是使用问题跟踪器。

由 Abdul Mannan 用 ❤️ 制作(https://github.com/abdulmannans)