我是数据迁移领域的新手,正在研究如何将使用 OurApp 1.0 的客户数据迁移到具有与 OurApp 2.0 兼容的架构的新数据库中。我见过不少人推荐 Liquibase 用于数据库更改管理和数据库重构任务,在我的新手耳中,这听起来可能接近我们的需要。
然而,在阅读了 www.liquibase.org 上的资料后,我感觉 Liquibase 更多的是保持模式更新,而不是转换大量现有数据以便可以将其保留在新模式中。
假设我想将 Employee 表中名为 name 的列拆分为 firstname 和 lastname 列。Liquibase 将能够通过删除 name 列并添加 firstname 和 lastname 列来更改表。但是,我觉得 Liquibase 并不是真正为我构建的,它可以插入转换代码,将数据库中现有记录的名称字段解析为名字和姓氏,并将它们存储在各自的列中。
例如,假设我的桌子看起来像这样
id | name | position
*********************************
12 Horace Slughorn Professor
13 Albus Dumbledore Headmaster
在我运行 Liquibase 之后,name 列将被 firstname 和 lastname 列替换,因此我的数据库架构是正确的。但我猜 Liquibase 不是一个框架,它允许我插入一些代码,将“Horace Slughorn”解析为“Horace”和“Slughorn”,并将这些值存储在该记录的名字和姓氏列中。
id | firstname | lastname | position
*****************************************
12 Horace Slughorn Professor
13 Albus Dumbledore Headmaster
因此,Liquibase 使您的架构保持最新,但并非旨在帮助您转换现有数据以使其与新架构匹配。是对的吗?