我们的应用程序使用数据库(主要是Oracle),而数据库是核心。每个客户都有自己的数据库,并有自己的应用程序副本。现在,随着我们产品的每一个新版本,我们还需要更新数据库模式。这些更改包括添加新表、删除列、操作数据等。人们是如何处理这些变化的?这方面有什么标准的程序吗?
编辑:-主要的问题是数据库是巨大的,有许多表和更多的海量数据。我们提供脚本和一些实用程序来操作数据。如何处理失败和错误?更多的寻找这类文章。http://thedailywtf.com/Articles/Database-Changes-Done-Right.aspx
发布于 2012-04-12 18:48:34
这取决于您的数据,但通常您希望确保所有的数据使其通过升级完整。
您可能需要准备一些创建/修改结构的DDL脚本,甚至每个结构都需要一个脚本。您可能还需要在此过程中更新/备份/转换数据的一些DML脚本。同样,你需要做多少这将取决于升级的性质。
出于测试目的,最好在计划的升级之前尝试获取一些(或所有的)客户端数据,然后在他们的数据上进行测试,看看他们的系统中是否有任何数据可以破坏升级过程。
最后,在开始升级之前,您需要对客户端的数据库进行全面备份,这样如果事情变得很奇怪,就可以进行恢复。
其他一些值得考虑的要点是:
发布于 2012-04-12 18:57:43
我建议您查看myBatis迁移。您可以使用它将修改(和回滚)脚本包装成一个简单的逗号,而不是作为安装/升级的一部分运行。
发布于 2014-01-30 08:24:08
它取决于实际的语言、框架、平台等。如果是Java (独立或EE),最好的解决方案可能是液基,同时也有其他解决方案。
https://softwareengineering.stackexchange.com/questions/144162
复制相似问题