whatafunc/db-diff-auditor
Composer 安装命令:
composer require whatafunc/db-diff-auditor
包简介
Database change auditor for AI-assisted development
README 文档
README
A PHP-based database schema auditing tool designed to work with MySQL and PostgreSQL. Its main purpose is to track changes in your database structure over time.
Philosophy and Intended Use Case
While there are many powerful database migration frameworks available, db-diff-auditor is not intended to replace them. Instead, it is designed to fill a specific niche for developers who value simplicity, visibility, and control, especially in the following scenarios:
-
For the Hands-On Developer: Many developers prefer to make schema changes directly in their database client (like Sequel Pro, DBeaver, or the command line) and then want a quick and easy way to capture those changes in a version-controllable format. This tool is perfect for that workflow. It provides a code-based confirmation of your manual changes and generates the SQL to replicate them elsewhere.
-
For AI-Assisted Development: As AI tools become more common in the development process, there is a growing need for simple, focused tools to audit the changes they make. This tool provides a clear and auditable trail of any schema changes suggested or applied by an AI, allowing developers to maintain full visibility and control over their database structure.
In short, db-diff-auditor is about providing a lightweight, straightforward, and auditable bridge between your database and your codebase.
For Library Consumers
This section explains how to install and use this library in your own projects.
Installation
Before installing this library, ensure you have Composer, the PHP dependency manager, installed on your system.
To check if Composer is installed, open your terminal or command prompt and run:
composer -V
If Composer is not installed, you can follow the official installation guide: https://getcomposer.org/download/
You can then install the library via Composer:
composer require whatafunc/db-diff-auditor
Usage
You can use the DbDiffAuditor class in your own PHP projects to programmatically handle schema auditing.
<?php require 'vendor/autoload.php'; use DbDiffAuditor\DbDiffAuditor; $config = [ 'connection' => [ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'mydatabase', 'username' => 'root', 'password' => '', 'port' => 3306, ], 'snapshot_path' => '.db-snapshots', 'ignore_tables' => ['migrations', 'sessions'], ]; $auditor = new DbDiffAuditor($config); // Create a snapshot $auditor->createSnapshot('My first snapshot'); // Get changes $changes = $auditor->getChanges(); // Export changes to SQL $sql = $auditor->exportChanges($changes); echo $sql;
You can also use the command-line tool provided by this library. After installing the library, the db-diff command will be available in your project's vendor/bin directory.
vendor/bin/db-diff db:check
For Library Contributors
This section explains how to set up the development environment, run the development CLI tool, and run the tests for this library.
Development Setup
- Clone the repository:
git clone https://github.com/whatafunc/db-diff-auditor.git - Install Dependencies: Run
composer installto install both library and development dependencies. - Configure Environment: Copy
.env.exampleto.envand fill in your local database credentials. This is only for the development CLI tool.
Development CLI Tool
This project includes a command-line tool for development and testing purposes. You can run the commands using Composer's scripts feature.
Available Commands
Creating a Snapshot
composer db-diff db:snapshot
Checking for Changes
composer db-diff db:check
Comparing the Last Two Snapshots
composer db-diff db:compare-last
You can also use the --help flag with any command to get more information, for example:
composer db-diff db:check --help
Testing
Testing Approach
The project uses unit tests to ensure the core logic is reliable and works as expected. The main principles of the testing approach are:
- Isolation: Tests are designed to run in isolation, without the need for a live database connection. This makes them fast and reliable.
- Mock Data: The tests use simple PHP arrays to simulate database schema snapshots. This mock data is managed in a base
TestCase(tests/TestCase.php) to promote reuse and keep the tests clean. - Maintainability: By using a base test case and clear, descriptive test methods, the test suite is designed to be easy to maintain and extend.
Running Tests
You can run the test suite using Composer:
composer test
Continuous Integration
This project uses GitHub Actions to automatically run the test suite on every push and pull request to the main branch.
- Workflow: The CI workflow is defined in the
.github/workflows/ci.ymlfile. - Environment: The tests are run in a minimal
php:8.1-alpineDocker container to ensure a consistent and lightweight testing environment.
whatafunc/db-diff-auditor 适用场景与选型建议
whatafunc/db-diff-auditor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3 次下载、GitHub Stars 达 2, 最近一次更新时间为 2025 年 11 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 whatafunc/db-diff-auditor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 whatafunc/db-diff-auditor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 22
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-06