想象一下,我有一张个人信息的临时表:
- UUID (varchar)
- main_document (varchar)
- 名称(varchar)
- DoB(时间戳)
- 流派(varchar)
- 地址(varchar)
- 工资(十进制)
在T1我运行模式迁移并添加一个新列,从现在开始,表有:
- UUID (varchar)
- main_document (varchar)
- 名称(varchar)
- DoB(时间戳)
- 流派(varchar)
- 地址(varchar)
- 工资(十进制)
- 电子邮件(varchar)*
然后在T2运行另一个模式迁移并将 main_document 的数据类型更改为 NUMBER。
- UUID (varchar)
- main_document ( NUMBER )*
- 名称(varchar)
- DoB(时间戳)
- 流派(varchar)
- 地址(varchar)
- 工资(十进制)
- 电子邮件(varchar)
然后在T3我运行另一个模式迁移并删除流派列
- UUID (varchar)
- main_document(编号)
- 名称(varchar)
- DoB(时间戳)
- --------------- *
- 地址(varchar)
- 工资(十进制)
- 电子邮件(varchar)
然后在T4我运行另一个模式迁移并添加流派列,但现在它具有数据类型 NUMBER。
- UUID (varchar)
- main_document(编号)
- 名称(varchar)
- DoB(时间戳)
- 流派 (NUMBER) *
- 地址(varchar)
- 工资(十进制)
- 电子邮件(varchar)
如果架构在 T1、T2、T3、T4 等上发生更改,我如何查询我的数据库(及时返回)?
就像,我们在(墙上时间)T4并运行: select * from people AS OF T3,应该返回什么?真的是时间旅行吗?
是否有任何最佳实践或策略来避免这些临时表 + 模式迁移的所有这些复杂性?
任何帮助将非常感激。
谢谢