sqlFILE 到 XML 与 liquibase
sqlFILE to XML with liquibase
我尝试根据我的 sql 个文件生成 XML 个文件。我用那个 plugin。我可以在 .each
中使用 changeset
吗?为什么我会因为没有方法的特征而出错?该插件的文档有点差...
@Grapes(
@Grab(group='org.liquibase', module='liquibase-groovy-dsl', version='1.2.2')
)
import groovy.io.FileType
import liquibase.changelog.*
def databaseChangeLog() {
def list = []
def dir = new File(".")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
list.each {
changeSet(id: 'sql-file') {
sqlFile(path: $list, stripComments: 'true', splitStatements: 'true', encoding: 'utf8')
}
}
}
}
我相信你至少有两个问题。
首先,您不应该在 list
对象完成填充之前对其进行迭代。但事实上,那个对象不是很有用,我想你可以直接在 eachFileRecurse 中做你的事情。
其次,我认为您混淆了函数定义 (def databaseChangeLog() {}
) 和从插件调用 databaseChangeLog
委托。
因此您的代码可能如下所示:
@Grapes(
@Grab(group='org.liquibase', module='liquibase-groovy-dsl', version='1.2.2')
)
import groovy.io.FileType
import liquibase.changelog.*
def dir = new File(".")
databaseChangeLog {
dir.eachFileRecurse(FileType.FILES) { file ->
changeSet(id: 'sql-file') {
sqlFile(path: file.absolutePath, stripComments: 'true', splitStatements: 'true', encoding: 'utf8')
}
}
}
我尝试根据我的 sql 个文件生成 XML 个文件。我用那个 plugin。我可以在 .each
中使用 changeset
吗?为什么我会因为没有方法的特征而出错?该插件的文档有点差...
@Grapes(
@Grab(group='org.liquibase', module='liquibase-groovy-dsl', version='1.2.2')
)
import groovy.io.FileType
import liquibase.changelog.*
def databaseChangeLog() {
def list = []
def dir = new File(".")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
list.each {
changeSet(id: 'sql-file') {
sqlFile(path: $list, stripComments: 'true', splitStatements: 'true', encoding: 'utf8')
}
}
}
}
我相信你至少有两个问题。
首先,您不应该在 list
对象完成填充之前对其进行迭代。但事实上,那个对象不是很有用,我想你可以直接在 eachFileRecurse 中做你的事情。
其次,我认为您混淆了函数定义 (def databaseChangeLog() {}
) 和从插件调用 databaseChangeLog
委托。
因此您的代码可能如下所示:
@Grapes(
@Grab(group='org.liquibase', module='liquibase-groovy-dsl', version='1.2.2')
)
import groovy.io.FileType
import liquibase.changelog.*
def dir = new File(".")
databaseChangeLog {
dir.eachFileRecurse(FileType.FILES) { file ->
changeSet(id: 'sql-file') {
sqlFile(path: file.absolutePath, stripComments: 'true', splitStatements: 'true', encoding: 'utf8')
}
}
}