patabugen / laravel-mssql-changes
一款用于从Laravel管理SQL Server(2008)变更跟踪并查看变更的包
Requires
- php: ^8.0
- illuminate/contracts: ^9.0|^10.0
- lorisleiva/laravel-actions: ^2.4
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0|^8.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
- dev-main
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.0
- dev-dependabot/github_actions/stefanzweifel/git-auto-commit-action-5
- dev-dependabot/github_actions/actions/checkout-4
- dev-dependabot/github_actions/aglipanci/laravel-pint-action-2.3.0
- dev-dependabot/github_actions/ramsey/composer-install-2
- dev-feature/reference-database
This package is auto-updated.
Last update: 2024-09-09 16:32:26 UTC
README
管理Microsoft SQLServer中的跟踪变更,让您能够从Artisan和Laravel应用程序内部列出变更。
此包是为了从MSSQL 2008读取跟踪变更而编写的,尚未在其他版本上测试。
注意:此库用于 变更跟踪,它与 变更数据捕获(CDC) 不同。
安装
您可以通过composer安装此包
composer require patabugen/laravel-mssql-changes
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="mssql-changes-config"
使用方法
该包提供了Artisan命令以及程序化接口。
使用方法 - PHP
功能由操作提供,这些操作由Artisan命令使用以提供CLI访问。
请参阅每个操作上的 asCommand 方法,以获取从PHP调用库的实际示例。
获取表的全部变更
use Patabugen\MssqlChanges\Actions\ListTableChanges; use Patabugen\SqlChanges\Table; use Patabugen\SqlChanges\Change; $table = Table::create('Contacts'); /** @var Illuminate\Support\Collection $changes */ $changes = ListTableChanges::handle($table); $changes->each(function(Change $change) { var_dump($change->toArray(); });
通过版本过滤获取表的全部变更
use Patabugen\MssqlChanges\Actions\ListTableChanges; use Patabugen\SqlChanges\Table; use Patabugen\SqlChanges\Change; $table = Table::create('Contacts'); /** @var Illuminate\Support\Collection $changes */ $changes = ListTableChanges::make() ->fromVersion(100) ->toVersion(200) ->handle($table); $changes->each(function(Change $change) { var_dump($change->toArray(); });
使用方法 - Artisan
注意:此包处于早期阶段,这些命令可能还不适用。
将默认数据库从您的配置中使用,或者设置环境变量 MSSQL_CHANGES_CONNECTION 为要使用的连接名称。
启用数据库的变更跟踪
artisan mssql:enable-database-change-tracking
启用表的变更跟踪
artisan mssql:enable-table-change-tracking {TableName}
禁用表的变更跟踪
artisan mssql:disable-table-change-tracking {TableName}
列出所有表中所有变更
artisan mssql:show-changes
通过表过滤变更
artisan mssql:show-table-changes {tableName}
通过版本过滤变更
使用 --from 和/或 --to 仅显示给定变更之前或之后的变更(包含)。
artisan mssql:show-changes --from=200 --to=209 artisan mssql:show-table-changes --from=200 --to=209
$ php artisan mssql:list-table-changes Addresses +-----------+-------------+---------------------+----------------+ | Table | Primary Key | Columns Changed | Change Version | +-----------+-------------+---------------------+----------------+ | Addresses | 91750 | Address1, upsize_ts | 5 | +-----------+-------------+---------------------+----------------+
待办事项
我想添加这些命令或功能
- 为测试创建测试数据库
artisan mssql:disable-change-trackingartisan mssql:list-status- 显示数据库/表的状态
测试
您需要一个运行中的SQL Server实例和已创建的数据库,请参阅 phpunit.xml.dist 以获取默认值。将其复制到 phpunit.xml 以自定义测试。
如果您尚未这样做,您可能需要采取 额外步骤 以允许PHP连接到MSSQL。
注意:在编写测试时,测试尚未完全可用,因为我已经开始创建测试数据库,但尚未完成。您可能能够从TestCase中删除迁移/设置,并手动创建一个名为“Contacts”的表,并启用跟踪。
测试还有一些硬编码的数字,这意味着它们经常会出错。可以通过完成上述任务使RefreshDatabase工作,或者在使用GetVersion过滤每个测试中的结果之前进行断言来解决。
composer test
更新日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
此包是为了解决一个一次性项目中特定问题而创建的,因此不太可能获得长期更新。
我已经将其作为包发布,以防将来可能帮助到其他人。
非常欢迎拉取请求,尤其是如果它们包括测试或完善现有/核心功能的话。请随意提交一个问题来讨论您希望进行的更改。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。