【问题标题】:Deploying ASP.NET MVC Database to Production将 ASP.NET MVC 数据库部署到生产环境
【发布时间】:2011-08-27 08:39:10
【问题描述】:

将 ASP.NET MVC 应用程序部署到生产环境时如何部署数据库?

我创建了一个标准的 ASP.NET MVC3 应用程序,它为我的应用程序使用 SQL Server 2008(尽管是 Express)。我正在使用 ASP.NET MVC 应用程序附带的标准表单身份验证内容。

如果我必须为我的所有类(即非 aspnet_* 表)重新创建架构,那么我可以针对生产数据库运行 SQL 脚本;但是aspnet_* 表呢?

或者我应该简单地上传一个 ASP.NET MVC 空数据库 (~10MB),然后针对它运行我的脚本来创建我的表?当然,一定有更好的方法。

(一旦解决了这个问题,我计划使用 SQL 脚本或数据库迁移来处理更改;这只是在生产中生成初始数据库而不上传我无法解决的 ~10MB .MDF 的问题,因为aspnet_* 表。)

【问题讨论】:

    标签: asp.net-mvc database sql-server-express


    【解决方案1】:

    您可以使用位于 C:\Windows\Microsoft.NET\Framework[your framework] 下的 aspnet_regsql.exe 在您的数据库中生成架构。

    运行:

    aspnet_regsql.exe /?
    

    您将看到该可执行文件采用的所有命令行选项。 -A 允许您指定将创建哪些功能(即表)。例如,如果您不使用角色,则可以只使用-A mp

    您可以选择让它直接修改您的数据库,或者创建一个您可以运行的脚本。这里有一些细节:http://weblogs.asp.net/lhunt/archive/2005/09/26/425966.aspx

    【讨论】:

    • 谢谢。这是将 ASP.NET MVC 部署到生产的典型情况吗?
    • 许多人使用 RedGate SQL Compare 等工具来迁移架构(或数据)更改)
    • 如何从代码中执行它?我现在正在使用 ActiveRecord,并通过 ActiveRecordStarter.CreateSchemaFromFile(...) 完成所有操作。但这也有存储过程的创建。
    【解决方案2】:

    您可以在您的(空)生产数据库上运行aspnet_regsql 实用程序来生成 aspnet_* 表。查看实用程序上的MSDN article

    【讨论】:

      【解决方案3】:

      您还可以使用 Visual Studio 部署数据库。

      1. 在 VS 中,打开数据库资源管理器窗口
      2. 添加到本地数据库的连接
      3. 右键单击数据库并选择“发布到提供者”
      4. 数据库发布向导将打开
      5. 该向导允许您选择要部署的数据库对象(表、存储过程等)
      6. 选择“脚本到文件”选项,这将创建一个可以在产品数据库上运行的脚本
      7. 打开 SQL Server Management Studio
      8. 连接到您的产品数据库
      9. 打开您使用向导创建的脚本文件并执行脚本

      【讨论】:

      • +1 好的解决方案。但我更愿意在脚本中包含所有内容,我可以运行这些脚本来填充我的数据库。另外,这就是迁移本质上的工作方式,而我正在寻找与此一致的解决方案。
      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2013-10-15
      • 2016-10-05
      相关资源
      最近更新 更多