database - 架构正在变化的应用程序的数据迁移过程?

标签 database oracle process migration

在使用了 10 多年的应用程序,并不断受到其缺乏可扩展性的限制后,我们决定从头开始完全重写它。因为新的架构不同于旧的应用,数据库也不一样。问题来了:是否有将数据从旧数据库迁移到新数据库的工业流程?有些表是相似的,有些则不是。总的来说,我们需要一个流程来帮助我们确保在迁移过程中不会丢失任何数据或逻辑约束。

PS:新旧数据库都是Oracle数据库。

最佳答案

虽然您没有在问题中指定这一点,但我假设您要开发新版本的应用程序/数据库,然后在某个切换点需要从旧版本迁移所有实时数据数据库到您的新数据库。

如果是这种情况,那么您实际上是在询问两个不同的过程:数据库结构的迁移(经过一些修改),然后是数据本身的迁移。

对于第一个流程,最好的工具是您,开发人员(我不是说您是“工具”——您知道我的意思)。您可以引入旧数据库的结构,然后根据需要为新版本更改它;然而,这种方法通常倾向于留下太多的旧结构。我认为最好利用这种情况从头开始重建数据库,使用原始数据库作为一般引用。

对于第二个过程,我会将数据迁移视为一项单独的任务,需要单独编写和测试的应用程序。该应用程序可以是一组脚本或已编译的应用程序或任何对您来说最方便的应用程序。因为您的旧数据库和新数据库将不具有相同的结构(实际上可能非常不同),所以没有商业工具可以自动为您处理此任务。通过将其视为您自己编写的独特应用程序,您可以在“上线”日期之前多次测试数据转换过程。

关于database - 架构正在变化的应用程序的数据迁移过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1444401/

相关文章:

sql - check和外键有什么区别?

c# - .net 的替代 Oracle 驱动程序

oracle - sqlplus 如何查找当前连接的数据库 session 的详细信息

php - ECHO 变量包括换行符

php - MySQL 将 IP 存储为 int 以获得更高的性能?

c# - 如何通过提供正在运行的进程名称来获取窗口句柄?

windows - 来自多个进程的线程是否实际上同时运行

process - 如何在golang中的exec.command中添加空格

database - 高效地在大型数据库中搜索相似的记录

mysql - 错误 : column specified more than once in Postgres