在我的数据库表中,我有用于创建、更新用户和日期的审核列。
我想使用此迁移脚本更新一些行
update table set column_1=1, UpdatedBy='SystemUser', UpdatedDate=GETDATE() where column_1=2;
现在在向下的脚本中,我想将其恢复到与迁移之前完全相同的状态。理想情况下这就是它应该如何工作,对吗?
所以我会有一个向下脚本,它的作用与上面的向上脚本相反。 问题是我如何知道行更新之前的更新日期是什么?
所以这应该是我的脚本
update table set column_1=2, UpdatedBy='SystemUser', UpdatedDate=[WHAT_SHOULD_COME_HERE] where column_1=1;
这些类型的以前的数据依赖的向下脚本是如何编写的?
如果您没有备份之前的日期,则无法告诉 EF down 脚本更新之前的日期。
但是如果您自定义了 EF up 方法来更新日期,例如将日期存储在另一个表(例如审计表)中。然后你也可以写下脚本根据审核表设置日期。
总而言之,最简单的方法是在对数据库进行所有迁移时备份数据库。