【问题标题】:How can I implement a local testing database for my Azure Website?如何为我的 Azure 网站实施本地测试数据库?
【发布时间】:2013-08-24 03:00:48
【问题描述】:

我正在开发一个使用 SQL Azure 数据库的网站。我希望能够使用调试机器上本地托管的数据库来测试我的网站,这样我的设计师就可以处理样式和内容,而不必像他一样处理启动 Azure 模拟器和与外部服务通信的开销通常在没有连接的区域。

我想可以提取 .sql 脚本来创建数据库并在每次测试运行时执行它们,但这似乎很乏味。同样,我不确定配置这些部署细节的最佳方式是什么,以便在开发和发布的配置之间切换。我是一名新的网络开发人员,正在为一个相当大的项目而努力。

使用 ASP.NET MVC4 并安装 MSSQL 2012,物有所值。

【问题讨论】:

    标签: asp.net sql sql-server asp.net-mvc-4 azure-sql-database


    【解决方案1】:

    您可以将 SQL azure 数据库导出为 .bacpac 格式,然后将其导入您的 sql server 数据库。它将创建所有表并填充数据。您无需在每次测试运行时都执行此操作,只需执行一次,您将拥有适合调试需求的数据库。

    在调试和发布之间切换(或者您可以根据需要重命名,例如本地和生产)配置并使用不同的 web.config(或配置转换)是处理不同设置的好方法。

    如果您想将您的数据库脚本(数据库结构或数据)存储在您的 VCS 中 - 您可以使用实体框架迁移(新奇的方式)或“SQL Server 数据库”类型的单独项目(老派但经过验证的方式:) )。

    此外,EF 迁移允许您在每次运行时轻松地重新创建 db(使用不同的名称)(用于单元测试目的。然后您可以使用 SQL Express 文件实例(请记住,它仅用于本地工作,您的设计师不会能够访问 sql express 实例 afaik)

    【讨论】:

    • 这是一个非常有用的答案。出于各种原因,我一直试图避免使用 EF,实际上我正在使用 dapper 进行 O-R 映射。我从来没有接触过配置转换,所以这是我需要研究的。有没有一种好方法可以导出创建和更新的创建脚本,以便每次都能执行?
    • 好的,你可以使用 SQL 数据库项目的方式——你将有单独的项目,其中包含 sql 脚本。您可以从中生成完整的脚本或数据库差异。您也可以将您的数据库反向工程回项目。当 VS 为 db-deployment 生成脚本时 - 它会进行所有检查,例如“删除对象是否存在并创建新对象”。
    • 请记住,它可能会在创建新表之前删除您的表,并且您可能会丢失数据。设置中的某处应该有复选框 - 如果可能发生数据松动,请不要部署。而且,存储大量数据并不是很方便 - 它使用 sql bulk insert 在创建后填充您的表。因此,一些带有用户\角色或字典的预填充列表很好,但不是 100k 条目表。
    猜你喜欢
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多