首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理数据库更新

管理数据库更新
EN

Stack Overflow用户
提问于 2011-07-29 19:57:17
回答 6查看 774关注 0票数 6

我一直在思考如何改进对数据库结构更改的管理。我有一个创建夜间构建的构建服务器,所以我想我们可以通过某种方式从测试环境中创建数据库转储、备份和脚本,作为构建过程的一部分。然后,在将更新部署到客户端时,我们可以使用诸如DBDiff之类的工具来创建数据库更新脚本。

有没有人做过类似的事情?这是个好主意吗?也许有一些好的技巧可以用来在构建服务器上创建这些转储文件?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-07-29 20:21:43

我建议您保留一个适当的脚本,从头开始创建数据库,而不是识别其中的差异。

我们非常满意使用Liquibase来管理我们项目中的所有数据库迁移。它知道哪些“补丁”已经被应用,并确保只有那些缺失的补丁才会被应用到目标数据库。

票数 2
EN

Stack Overflow用户

发布于 2011-07-29 20:18:43

这是可能的。

差异是最难的部分。一旦确定了不同之处,就需要构造适当的sql,然后应用它。您可以直接应用它,也可以创建一些可以在审阅后运行的脚本。

当两端都发生更改时,您需要决定目标系统是否应该保留其更改,或者是否应该完全删除它。

请记住,当目标系统更改还包含数据时,如果您删除了一些表或列,那么您的引用完整性可能会完全损坏。

再想一想。您需要访问目标系统才能确定差异。如果这是一个通用实用程序,则需要在事后将其设置为可执行文件,而不是构建的一部分。

票数 0
EN

Stack Overflow用户

发布于 2011-07-29 20:24:40

你会发现可视化数据库工具在这里非常有用。

http://msdn.microsoft.com/en-us/library/y5a4ezk9.aspx

Visual Studio中内置了一个模式比较(也可以从命令行运行)。还有一个数据库项目,其中包含数据库及其包含的对象的一组完整的脚本。这可以与源代码一起签入到源代码控制中。

您可以通过单击上下文菜单来部署基于这些脚本的新数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6872740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档