如何在 Go 中实现数据库变更跟踪?

如何在 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 中实现数据库变更跟踪?的详细内容,更多请关注其它相关文章!