gpt4 book ai didi

使用不同的 DBMS 使用 Liquibase 进行数据库迁移

转载 作者:太空狗 更新时间:2023-10-30 01:53:20 27 4
gpt4 key购买 nike

我们的客户正在使用 Oracle,我们想使用 MySQL 进行开发。因此我们的 MySQL Scheme 必须与 Oracle 同步。我尝试使用 Liquibase,但由于特定于数据库的 sql 和不同的列类型(如 NUMBER <-> BIGINT 或 VARCHAR <-> VARCHAR2

),我在应用变更集时遇到问题

我是不是用错了这些工具?如何解决此类问题?

最佳答案

Liquibase 将尝试将“varchar”、“int”、“boolean”、“datetime”等标准类型转换为数据库的正确数据类型。如果您将列定义为 type="VARCHAR(100)",当您针对 oracle 运行时,它将生成带有 VARCHAR2(100) 的 SQL。

不幸的是,标准类型到特定于数据库的类型的映射并没有像它应该的那样得到很好的记录。

或者,如果您可以坚持使用 SQL 标准数据类型,它们通常是相当跨数据库的。

当你需要强制一个特定的类型时,你可以像 http://www.liquibase.org/documentation/changelog_parameters.html 中的例子那样使用一个 changelog 参数。

<column name="notes" type="${clob.type}"/>

并为每个数据库定义 clob.type:

<property name="clob.type" value="clob" dbms="oracle"/>
<property name="clob.type" value="longtext" dbms="mysql"/>

关于使用不同的 DBMS 使用 Liquibase 进行数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25619196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com