我想设置一种机制来跟踪数据库架构更改,例如此答案中描述的机制:
对于您对数据库所做的每一次更改,您都会编写一个新的迁移。迁移通常有两种方法:应用更改的“向上”方法和撤消更改的“向下”方法。单个命令使数据库保持最新,也可用于将数据库带入特定版本的模式。
我的问题如下:“向上”方法中的每个 DDL 命令是否可逆?换句话说,我们可以一直提供一个“down”的方法吗?你能想象任何不能“关闭”的 DDL 命令吗?
请不要考虑典型的数据迁移问题,在“向上”方法期间我们会丢失数据:例如,将字段类型从datetime
( DateOfBirth
) 更改为int
( YearOfBirth
),我们会丢失无法恢复的数据。