如何以SQL格式生成更改日志以创建当前数据库模式?

时间:2014-02-28 15:05:59

标签: sql xml database oracle11g liquibase

当开始在现有数据库上使用Liquibase时,通常有用,特别是对于测试,有一种方法来生成更改日志以创建当前数据库模式。 Liquibase允许您使用“generateChangeLog”command_line命令执行此操作。但是,此命令将仅生成XML格式的数据库更改日志。

那么如何以SQL格式生成更改日志以创建当前数据库模式?是否存在以XML格式将数据库更改日志转换为SQL格式的任何方式?如果没有,Liquibase API中是否有任何扩展点来添加此功能?

1 个答案:

答案 0 :(得分:2)

目前没有支持生成SQL,但您可以编写扩展来执行此操作。 * serializer类(如liquibase.serializer.core.xml.XMLChangeLogSerializer)将更改日志对象和输出转换为您想要的任何格式。

使用FormattedSqlChangeLogSerializer来覆盖getValidFileExtensions()以返回新的String [] {“xml”},您可以使用outputFile = some.file.sql运行generateChangeLog并获取您在自定义序列化程序类中生成的SQL。

扩展系统允许您在自定义jar中创建此类。