我正在评估 Liquibase 并试图弄清楚它在数据迁移方面是否比仅使用 SQL 脚本有任何优势。假设我正在执行以下操作:
我的版本 0 数据库架构如下所示:
CREATE TABLE `Person` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`firstName` varchar(255) NOT NULL,
`lastName` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
数据库中填充了一些由以下插入表示的现有数据:
INSERT INTO `Person` (`id`, `firstName`, `lastName`) VALUES (1, 'foo', 'bar');
然后我决定向 Person 表添加另一列,该列不为空,但我不想丢失任何现有数据。从版本 0 到版本 1 的迁移脚本如下所示:
ALTER TABLE `Person` ADD COLUMN `dob` date DEFAULT NULL;
UPDATE `Person` set `dob` = '1970-01-01';
ALTER TABLE `Person` MODIFY COLUMN `dob` NOT NULL;
Liquibase 能让这个用例变得更容易吗?