验证SQLite表格架构

5
在处理表格之前,我需要确认表格的架构与执行代码完全对应。我知道有一个命令.schema tablename,其结果可以进行散列,并与实际架构的散列进行比较。问题是,存储的架构包含创建表时使用的所有多余字符(重复制表符、空格、换行符等),如果我在下一个版本的代码中更改了架构内的空格数,则无法识别该表格。
我不想手动解析每个具有其属性的列。
我不能仅通过split&join或regexp删除重复的空格,因为有时它们并没有重复,但仍然是多余的(例如,在括号附近)。
看起来验证表格架构是一个非常常见的任务,但我无法有效地实现它。
更新:
我正在考虑另一种可能的方法:创建一个临时表格,并使用一些内部sqlite函数将其架构与目标表格的架构进行比较。这样行得通吗?

能否通过编程实现?如果可以,首先获取所有表的列表(.tables),然后对于每个表,运行 pragma table_info(table); - Dan
@Dan 我的意思是“手动解析每个列及其所有属性”。虽然这是可能的,但很困难。 - astef
@Dan 我理想的验证方式就是比较两个哈希值。 - astef
1个回答

4
可能的解决方案:PRAGMA schema_version;PRAGMA user_version; 命令
有几种使用它们来验证表结构的变体,但我相信您会找到合适的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接