首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在每个版本中进行数据库更新

如何在每个版本中进行数据库更新
EN

Software Engineering用户
提问于 2012-04-12 18:42:50
回答 3查看 504关注 0票数 4

我们的应用程序使用数据库(主要是Oracle),而数据库是核心。每个客户都有自己的数据库,并有自己的应用程序副本。现在,随着我们产品的每一个新版本,我们还需要更新数据库模式。这些更改包括添加新表、删除列、操作数据等。人们是如何处理这些变化的?这方面有什么标准的程序吗?

编辑:-主要的问题是数据库是巨大的,有许多表和更多的海量数据。我们提供脚本和一些实用程序来操作数据。如何处理失败和错误?更多的寻找这类文章。http://thedailywtf.com/Articles/Database-Changes-Done-Right.aspx

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2012-04-12 18:48:34

这取决于您的数据,但通常您希望确保所有的数据使其通过升级完整。

您可能需要准备一些创建/修改结构的DDL脚本,甚至每个结构都需要一个脚本。您可能还需要在此过程中更新/备份/转换数据的一些DML脚本。同样,你需要做多少这将取决于升级的性质。

出于测试目的,最好在计划的升级之前尝试获取一些(或所有的)客户端数据,然后在他们的数据上进行测试,看看他们的系统中是否有任何数据可以破坏升级过程。

最后,在开始升级之前,您需要对客户端的数据库进行全面备份,这样如果事情变得很奇怪,就可以进行恢复。

其他一些值得考虑的要点是:

  • 如果要删除表/列,请确保以正确的顺序删除它们,以避免违反完整性约束。
  • 是否有任何限制或触发器应该禁用/删除全部或部分升级?是否有任何限制或触发器,您可以创建仅为升级,可能使其更容易?
  • 如果要更新已编入索引的列的数据,则可能需要将重新索引/统计数据收集作为升级过程的一部分。
票数 10
EN

Software Engineering用户

发布于 2012-04-12 18:57:43

我建议您查看myBatis迁移。您可以使用它将修改(和回滚)脚本包装成一个简单的逗号,而不是作为安装/升级的一部分运行。

票数 3
EN

Software Engineering用户

发布于 2014-01-30 08:24:08

它取决于实际的语言、框架、平台等。如果是Java (独立或EE),最好的解决方案可能是液基,同时也有其他解决方案。

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

https://softwareengineering.stackexchange.com/questions/144162

复制
相关文章

相似问题

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