目前我有一个使用Entity Framework与数据库交互的服务。它启动时使用MigrateDatabaseToLatestVersion<Context, Configuration>
初始化数据库,运行良好。
我们要达到这样一种情况:我们有一个活动/预演环境,唯一的例外是两者都使用相同的数据库(我无法控制此项)。
所以,现在当我部署到预演环境时,我将服务部署为关闭状态。当我们切换预演环境与生产环境时,我关闭生产服务,启动预演服务,并根据需要迁移数据库。这很有效,我们在多个预生产环境中都这样做。如果出现问题(只发生过一次),我们必须手动运行Update-Database '[previous migration name]'
,然后将所有内容切换回上一个服务器。
现在,我想以与迁移向前相同的方式自动迁移向后。也就是说,如果服务启动并发现其模式比最新的迁移版本落后1版,并且最新的迁移是在x天内发生的,它将自动回滚模式并接受任何数据损失。
我不确定如何实现这一点。