如何在生产服务器上复制数据库布局更改?

时间:2009-04-29 17:36:20

标签: sql-server

假设我想在运行SQL Server 2008的ASP.NET MVC应用程序中添加一个新功能作为数据源。为了实现这个新功能,我需要在现有数据库表中添加一些新列。

在我的开发服务器上执行这些更改并实现新功能之后,在部署新版本的应用程序时,在生产服务器上执行相同数据库更改的最简单方法是什么?有没有办法实现自动化?

编辑:正如我刚刚发现的那样,Visual Studio 2008的服务器资源管理器似乎能够通过比较两种不同的数据库布局(右键单击数据库,单击“比较”)为我提取必要的更改。模式“)。这通常是否符合我的要求,或者在使用此功能时是否有任何重大问题?

3 个答案:

答案 0 :(得分:2)

如果您的需求相对简单,Red Gate的SQL Compare实用程序可能会为您执行此操作。如果没有,像ER-Win或ER-Studio这样的工具可以处理硬核模式和迁移。

答案 1 :(得分:2)

我认为使用类似于方法described by K Scott Allen的手动生成的脚本对数据库进行版本控制非常值得及时投资。但不是您要求的自动化解决方案。

答案 2 :(得分:0)

您应该拥有数据库和应用层版本。期。 如果您在生产中使用版本db 1.0和app layer 1.0,那么之后为版本1.1和1.1.5执行的所有更改都应该通过脚本“升级”。 所有“alter table”和“alter proc”语句都可以通过脚本运行。

或者: 将1.0 db恢复到db_old数据库。从脚本创建生产数据库并只复制数据(如果没有非常复杂的数据库应该不难) applayer 1的自动部署:

然而,对于整个过程,您必须在DEV中进行训练,在TEST中测试在qa中验证它并最近在PROD环境中执行它。

编辑:我个人认为如果团队无法顺利地从版本1.0升级到1.1同时在DEV上 - 闻起来像糟糕的设计,并混合在应用层应该是什么的责任和什么数据库服务器