我希望能够跟踪过去一个月对数据库(PostgreSQL)所做的更改。我知道两个选择:
但是没有办法直接从数据库本身查询预写日志吗?即
之类的东西@data([
{"search_val": "phones", "expected_count": 2},
{"search_val": "things", "expected_count": 3},
{"search_val": "stuff", "expected_count": 4},
])
@unpack
def test_search(self, search_val, expected_count):
答案 0 :(得分:1)
预写日志(WAL)不包含有关在服务器上运行的查询的信息,也不包含有关受影响的表名称的信息。
它包含有关物理级别的信息,例如“将这24个字节写入到偏移42处的文件3412的块746”。
您可以调查的一件事是逻辑解码,它使用来自WAL的信息和目录表的当前状态来生成您想要的信息。
请查看test_decoding模块。
它不会显示实际针对PostgreSQL运行的查询,但它会显示对表的修改。