我有一个ASP.NET MVC 5项目,该项目在本地运行,每当我需要清理数据库时,我只需在其上打开一个新查询,将可用数据库下拉列表更改为master,然后关闭本地数据库上的连接并运行查询"drop database[name]".然后我构建项目,进入package manager控制台并运行"更新数据库".这似乎重建了一个新的本地数据库,并在我的配置中运行seed方法.cs文件.
问题是,当我需要在一个实时环境中测试一些东西,以便能够更好地测试API时,我会将其部署到Azure网站和附带的Azure DB,这很好,也很容易做到.我在发布向导中勾选了"执行代码优先迁移",大部分时间它都可以运行,我可以运行和调试我的实时版本.有时我需要把数据库吹走,重新从头开始,但我真正找到的唯一方法是进入Azure门户,删除数据库,然后用相同的名称重新创建它.Azure需要一些时间来处理,所以这是一个缓慢的测试周期.
Is there a quick way to just drop/reset a Azure SQL DB to it's fresh, empty, virgin state and then re-publish with "execute code first migrations" to have it re-create the tables and re-seed the data?
我看到过一些关于在创建db之后创建初始迁移的讨论,然后try 使用Powershell回滚到初始状态,但我还没有成功让它工作,我想同时删除所有数据.也许我只是语法错误,或者没有找到足够好的教程.虽然我可以在Azure DB上运行一个查询来"删除数据库[x]",但它确实会像您预期的那样杀死SQL Azure DB实例,您需要返回门户重新创建它.有时,初始状态不好,因为模型已经更新,所以这可能无论如何都没有用.
我觉得应该有一些更简单、更快的方法来测试实时环境中的更改,因为MS提供了所有这些伟大的工具和快捷方式,但他们是在这个开发阶段把球扔到这里,还是我遗漏了什么?