如何将开发数据库更改移动到生产数据库?

Bud*_*sey 16 database sql-server

我一直致力于一个项目,并在第一阶段完成了它.但是,这些要求最终发生了变化,我不得不在数据库中添加新表并重做一些foriegn密钥引用.

我遇到的问题是,一旦我在dev数据库上完成开发,我就缺乏处理对staging然后生产数据库进行这种更改的知识.

迁移数据库架构更改和维护数据库中的数据有哪些策略?

据我所知,这是打开Sql Server Management Studio并开始手动添加表.我知道这可能是一个糟糕的方法,所以在寻找如何正确地做到这一点,同时意识到我可能开始错了.

Mil*_*dic 6

为了维护模式更改,您可以使用ApexSQL Diff,SQL Server和SQL Azure架构比较和同步工具,并且为了维护数据库中的数据,您可以使用ApexSQL Data Diff,SQL Server和SQL Azure数据比较和同步工具.

希望这可以帮助

免责声明:我作为支持工程师为ApexSQL工作


Baa*_*aju 5

你必须有一个叫做“KIT”的东西。显然,如果您要维护某种源代码控制,那么您在开发环境中所做的更改的所有脚本都应该在源代码控制配置工具中维护。

一旦您完成了所有您认为经过认证可以迁移到下一个更高环境的脚本/更改。准备工具包,将所有这些脚本放在文件夹中(最好分类为过程、表、函数、引导程序),然后有一个批处理文件,可以使用 OSQL 命令行实用程序以特定顺序在工具包中执行这些脚本。

为 UAT/Staging/production 准备单独的批处理文件,以便您只需双击批处理文件即可在适当的服务器中执行工具包。检查 OSQL 选项。

这样您的所有环境都将同步!


Fre*_*örk 3

我通常使用SQL Server 发布向导之类的工具来生成更改的 SQL 脚本。这是一个相当简单易行的方法。该工具的主要缺点是,生成的文件将删除并重新创建未更改但由已更改的过程使用的表(我不明白为什么),因此在执行脚本和删除时需要一些体力劳动不需要存在的东西。

请注意,您不需要下载并安装此工具;您可以从 Visual Studio 中启动它。右键单击服务器资源管理器中的连接,然后在上下文菜单中选择“发布到提供商”。

  • 我会担心任何在产品已经有数据时想要删除并重新创建表的工具。 (7认同)