【发布时间】:2011-04-07 14:14:09
【问题描述】:
我是数据迁移领域的新手,我正在研究如何将使用 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 可让您的架构保持最新,但并非旨在帮助您转换现有数据以使其与新架构匹配。那正确吗?
【问题讨论】: