patabugen/laravel-mssql-changes
Composer 安装命令:
composer require patabugen/laravel-mssql-changes
包简介
A package to manage Change Tracking and view changes in Microsoft's SQL Server (2008) from Laravel
README 文档
README
Manage tracked changes in Microsoft SQLServer, letting you list changes from Artisan and inside your Laravel application.
This package was written to read tracked changes from MSSQL 2008 and has not been tested on other versions.
Note: This library is for Change Tracking which is distinct from Change Data Capture (CDC).
Installation
You can install the package via composer:
composer require patabugen/laravel-mssql-changes
You can publish the config file with:
php artisan vendor:publish --tag="mssql-changes-config"
Usage
The package provides artisan commands as well as a programmatic interface.
Usage - PHP
Features are provided by Actions, which are used by Artisan commands to give us CLI access.
See the asCommand method on each action for real-life examples of calling the library from PHP.
Get all changes for a table
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(); });
Get all changes for a table filtered by version
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(); });
Usage - Artisan
Note: This package is in it's early stages, these commands may not work yet.
The default database from your config will be used, or set environment variable MSSQL_CHANGES_CONNECTION to the name of the connection to use.
Enable change tracking for the database
artisan mssql:enable-database-change-tracking
Enable change tracking for a table
artisan mssql:enable-table-change-tracking {TableName}
Disable change tracking for a table
artisan mssql:disable-table-change-tracking {TableName}
Lists all changes in all tables.
artisan mssql:show-changes
Filter Changes by table
artisan mssql:show-table-changes {tableName}
Filter changes by Version
Use --from and/or --to to only show changes before or after a given change (inclusive).
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 | +-----------+-------------+---------------------+----------------+
Todo
I'd like to add these commands or features:
- Creating a test database for the tests
artisan mssql:disable-change-trackingartisan mssql:list-status- Show the status of databases/tables
Testing
You'll need a running instance of SQL server with a database already created, see phpunit.xml.dist for default values. Copy it to phpunit.xml to customise the tests.
If you have not already, you may need to take extra steps to allow your PHP to connect to MSSQL.
Note: At the time of writing the tests are not fully functional because I've started getting them to create a test database, but not finished it. You may be able to remove the migrations/setup from TestCase and manually create a table called "Contacts" with tracking enabled.
The tests also have some hard-coded numbers which mean they'll break often. That can be solved by finishing the above so RefreshDatabase works, or by using GetVersion to filter the results within each test before making assertions.
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
This package has been created to solve a specific issue in a one-off project so is not likely to receive long term updates.
I've released it as a package in case it might help somebody else one day.
Pull requests are very welcome, especially if they include tests or round out existing/core features. Feel free to submit an issue to discuss a change you'd like.
Credits
License
The MIT License (MIT). Please see License File for more information.
patabugen/laravel-mssql-changes 适用场景与选型建议
patabugen/laravel-mssql-changes 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.02k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2022 年 10 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「Patabugen」 「laravel-mssql-changes」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 patabugen/laravel-mssql-changes 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 patabugen/laravel-mssql-changes 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 patabugen/laravel-mssql-changes 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Alfabank REST API integration
Laravel package for Accurate Online API integration.
Shared RCX Laravel DataTables UI and configuration helpers.
Boot a Laravel project on any machine with one command: app:serve installs missing tools (PHP, Node, Composer, Herd, Docker), creates .env, sets up the database, runs migrations, builds assets, starts a queue worker and serves via Herd, Sail or artisan serve; app:down cleanly stops everything it sta
Branded, diagnostic error pages (500, 403, 404, 419, 503) for Filament — native Filament UI, dark mode and translations out of the box.
Turn any PDF into a Pingen-ready A4 letter (generated address cover page + A4 normalisation + safe margins) and send it through the Pingen print & mail API. Laravel-first.
统计信息
- 总下载量: 1.02k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 17
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-10-10