0

我必须将 asp.net mvc 3 应用程序从开发环境部署到生产环境。

开发环境

  1. 数据库服务器 2008
  2. 视觉工作室 2010
  3. 应用程序:ASP.NET MVC 3 和使用模型优先方法的实体框架
  4. .mdf 格式的 Visual Studio 内置数据库

生产环境:

  1. sql server 2005
  2. 窗口服务器 2008 R2
  3. IIS 7

我已经使用 FTP 发布方法将使用 Visual Studio 的应用程序发布到生产环境。当我浏览应用程序时,它会引发以下异常:

System.Data.SqlClient.SqlException:对象名称“dbo.User”无效。

由于我没有在生产环境的sql server 2005数据库中建表,所以抛出了上述异常。是否有任何简单的方法可以将使用 Visual Studio 的开发环境数据库部署到生产环境数据库?或者我是否需要在生产环境中手动构建每个表?

4

1 回答 1

0

虽然我还没有尝试过,但 Code First 迁移可能是您正在寻找的解决方案:http: //msdn.microsoft.com/en-US/data/jj591621

另一种方法是使用 Microsoft 的 SQL Server Data Tools 项目:http: //msdn.microsoft.com/en-us/data/tools.aspx。要获得此功能,您过去必须为 Visual Studio Premium 或更高版本的许可证付费,但现在可以免费使用 SQL Server Data Tools。我曾为使用数据库优先方法编写的系统使用过这种方法,并且需要维护版本化 SQL 脚本的历史记录。

要使用这种方法,安装 SSDT 并创建一个新的数据库项目。然后创建一个模式比较,将您的开发数据库与数据库项目进行比较。运行比较并将更新写入项目(对于未来的更新,您可以使用此工具比较生产和开发数据库之间的模式)。

然后,您可以使用发布功能将项目直接发布到生产数据库,或者生成一个脚本,然后手动验证和运行该脚本。

直接发布到生产数据库时要格外小心,因为我会担心数据丢失或意外更新。除了初始模式创建(甚至可能不用于初始创建),我建议您始终生成一个脚本,以便您可以在针对生产数据库运行之前在阶段环境中验证输出和测试。

我意识到您正在与开发数据库模式进行比较并维护一个与 POCO 不同的模型,这可能不是您的意图,但是一旦您开始管理版本和版本控制,就有一组版本化的 SQL 脚本,您可以检查到源代码控制和回头参考是无价的。

于 2012-11-28T03:32:58.923 回答