【发布时间】:2021-02-13 00:51:29
【问题描述】:
我正在使用 MSSQL 并评估 Liquibase 以用于迁移。因此,我想使用 generateChangeLog 生成我的第一个变更日志。我的数据库有两个模式:默认模式和另一个名为“blah”的模式。我在每个模式中都有一个具有相同表名的表:test1。我跑了:
liquibase --dataOutputDirectory=./data/ --schemas=blah,dbo --changeLogFile=changelog.mssql.sql --includeSchema=true generateChangeLog
它完成了,我查看了生成的SQL:
-- liquibase formatted sql
-- changeset bmccord2:1604068236633-1
CREATE TABLE blah.test1 (id int NOT NULL, name varchar(255), CONSTRAINT PK__test1__3213E83F4F883C7C PRIMARY KEY (id));
-- changeset bmccord2:1604068236633-2
INSERT INTO blah.test1 (id, name) VALUES (1, 'Brian'),(2, 'Kim');;
-- changeset bmccord2:1604068236633-3
CREATE TABLE dbo.test1 (id int NOT NULL, name varchar(255), CONSTRAINT PK__test1__3213E83F6FD50901 PRIMARY KEY (id));
-- changeset bmccord2:1604068236633-4
INSERT INTO dbo.test1 (id, name) VALUES (1, 'Brian'),(2, 'Kim');;
起初,它看起来不错,但后来我注意到插入到 blah.test1 表中的数据不是该表中实际存在的数据。该表中的数据是:
"id","name"
"1","Miranda"
"2","Kyle"
因此,它对两个表都使用了第二个表的数据。它也只在数据文件夹中生成一个 .csv 文件。
显然,这不是我真正的数据库。我将问题简化为导致问题的最小因素。
有什么办法可以让它正常工作吗?
【问题讨论】:
标签: sql-server liquibase