是否有快速检测PostgreSQL数据库模式是否更改的方法? (是否有一个内部序列或者当PG架构操作如ALTER TABLE
运行时会增加?)?我想缓存基于模式查询的数据,并需要失效标记。检测PG数据库模式(数据字典)是否已更改
一种方法是运行模式反射查询(针对pg_class,pg_attribute和所有其他模块)并生成一个散列,但是我想知道是否有更简单的方法来完成相同的操作。它不需要是确切的,只是表示是时候刷新缓存并重新加载应用程序层中的模式。
澄清:这不是关于模式迁移或获取模式差异。它只是关于缓存失效标记。这是一个简单的标志:“自从标志X起模式改变了”。 (另外我不是在谈论架构命名空间,而是关于数据字典又名架构(database schema)。也就是说,数据库结构的变化。)
换言之:是否有PG版本的SQLite3 PRAGMA schema_version
。
递增的序列并不意味着*模式更改*。只是要清楚。这是一个数据库对象,它拥有一个当前值并且能够生成另一个值。我认为你需要定义*模式改变*是增加一个模式改变的索引?您指的是模式中的任何操作? –
我在询问有关_schema_的更改,而不是关于数据库内容更改。即ALTER TABLE,DROP TABLE,ADD COLUMN等,所有操作都会改变数据库的结构。推测CREATE INDEX和这些属于同一类别。 – hnh
@hhh这就是我的想法,但这让我失望了,你能解释一下吗:*序列增加* –