【发布时间】:2023-04-01 08:45:01
【问题描述】:
我有一个本地工作的 ASP.NET MVC 5 项目,每当我需要删除数据库时,我只需在其上打开一个新查询,将可用数据库下拉列表更改为 master,然后关闭本地数据库上的连接并运行查询“drop database [name]”。然后我构建项目,进入包管理器控制台并运行“更新数据库”。这似乎重建了一个新的本地数据库并在我的 configuration.cs 文件中运行种子方法。
问题是当我需要在实时环境中测试事物以便我可以更好地测试 API 时,我将部署到 Azure 网站和随附的 Azure DB,这很好而且很容易做到。我在发布向导中检查了“执行代码优先迁移”,大部分时间它都可以工作,我可以运行和调试我的实时版本。有时我需要删除该数据库并重新从头开始,但我真正找到的唯一方法是进入 Azure 门户,删除数据库,然后使用相同的名称重新创建它。 Azure 需要一些时间来处理,因此这是一个缓慢的测试周期。
有没有一种快速的方法可以将 Azure SQL DB 删除/重置为新鲜、空的、原始状态,然后使用“执行代码优先迁移”重新发布,让它重新创建表并重新- 播种数据?
我看到一些关于在创建数据库后创建初始迁移的讨论,然后尝试使用 Powershell 进行某种回滚到该初始状态,但我没有运气让它工作,我想同时删除所有数据。也许我只是语法错误,或者没有找到足够好的教程。虽然我可以在 Azure DB 上运行查询以“删除数据库 [x]”,但它实际上会按照您的预期杀死 SQL Azure DB 实例,您需要返回门户重新创建它。有时初始状态并不好,因为模型已经更新,所以无论如何这可能没有用。
我觉得应该有一些更简单快捷的方法来测试实时环境中的更改,因为 MS 提供了所有这些很棒的工具和快捷方式,但是他们只是在这个开发阶段把球丢在这里还是我错过了什么?
【问题讨论】:
标签: c# asp.net visual-studio azure azure-sql-database