如何在 Go 中实现数据库变更跟踪?
破译 Go 中的数据库变更跟踪
您是否在寻找一个类似于 PHP 中 Laravel Activitylog 的工具包,用于跟踪 Go 中的数据库变更?
现状:Go 中的工具匮乏
不幸的是,截至目前,Go 中还没有这样的工具包。生态系统中现有的库,如 ORM xorm 和 gorm,只提供了可插入的记录器。使用 SQL 包和其他第三方包,如 sqlmw,可以增强日志功能,但它们无法完全替代 Laravel Activitylog 的功能。
DIY 解决方案
尽管没有现成的工具包,您仍可以利用现有技术自己构建类似功能。以下是一些思路:
- 自定义记录器:在 ORM 或 SQL 包中创建自定义记录器,捕获数据库写入查询并记录相关信息。
- SQLMW 包装:使用 sqlmw 包包装数据库驱动,在查询执行前后插入钩子,以记录变更。
- 第三方日志工具:与 zap 等结构化日志工具集成,记录有关变更的详细信息。
通过将这些构建块组合起来,您可以实现类似 Laravel Activitylog 的功能,跟踪 Go 中的数据库变更。
以上就是如何在 Go 中实现数据库变更跟踪?的详细内容,更多请关注其它相关文章!