0

我有一个生产中的现有数据库。我已经使用 liquibase 导出了架构,并创建了一个基本脚本,以便在为新客户安装时使用。Liquibase 将我在 mssql 中的所有 id 列导出为 BIGINT,但实际上它们在数据库中是 NUMERIC。

现在,当我添加一个为旧表创建新表和前八键的升级脚本时,我收到一个错误:列与外键中的引用列的数据类型不同。

发生的情况是,仅升级(并且不会进行全新安装)的客户将在数据库中具有 NUMERIC 列,并且它将与新的 BIGINT 列发生冲突。

问题是我应该怎么做,因为对于每种数据库类型,它也是不同的类型。我搞不清楚了

4

1 回答 1

0

模式导出的工作是获取 changeLog 的起点。liquibase 的下一个版本专注于改进导出支持,但即便如此,您导出的数据库的类型与您的“意思”之间也会存在差异——尤其是在跨数据库的意义上。

通常的用法是调用 generateChangeLog,然后根据您对数据库的了解,通读创建的内容并根据需要对其进行修改以修复数据类型等。从那时起,您可以执行正常的 liquibase 流程,在需要数据库更改时手动附加到您的 changeLog,然后针对数据库运行修改后的 changelog。

于 2012-03-06T16:44:14.130 回答