我们有一个现有的Java项目,它建立在MySQL数据库上,我们依赖MySQL特定的设置和迁移机制来实现我们的~100个表和~10个视图。我们不使用存储过程。
我们实现了自定义Java代码(甚至包括getRuntime().exec(…) ))将所有内容和各种Ant目标结合在一起,以调用数据库功能。有利于减少数据库依赖和维护与我们的核心业务逻辑无关的代码。我们目前正在评估清算基础,以方便数据库部署和迁移。
为此,我们下载了液化基版本3.2.2,并使用“generateChangeLog”命令为当前数据库模式创建了一个changelog文件。
现在,我们在生成的changelog文件中遇到了一些问题:
现在有一些关于这种方法的问题:
您的建议是非常感谢的,谢谢提前!
致以亲切的问候,
史蒂文
发布于 2015-03-09 18:00:28
清算库文档说明了它如何支持跨数据库的一小部分通用列类型。
http://www.liquibase.org/documentation/column.html
为了使脚本与数据库无关,将将下列“通用”数据类型转换为正确的数据库实现: 布尔货币UUID CLOB BLOB日期日期时间时间BIGINT 此外,指定java.sqlT.ypes.*类型也将转换为正确的类型。如果需要,可以包括精度。以下是一些例子: java.sql.Types.TIMESTAMP java.sql.Types.VARCHAR(255)
要支持特定的数据类型,最好的方法是在changelog中声明DB特定的属性。
parameters.html
<property name="double.type" value="DOUBLE" dbms="h2"/>
<property name="double.type" value="DOUBLE(22)" dbms="mysql"/>
<changeSet id="1" author="joe">
<createTable tableName="${table.name}">
<column name="id" type="int"/>
<column name="val1" type="${double.type}"/>
<column name="val2" type="${double.type}"/>
</createTable>
</changeSet>https://stackoverflow.com/questions/28941512
复制相似问题