Tom*_*Tom 1 sql oracle xsd liquibase
我使用sqlFile包含一个sql脚本,该脚本使用oracle特定命令创建表(NOCACHE,NO PARALLEL,类似的东西).我的master.xml文件包含所有sql脚本并执行它们.但是,当它检测到标记时,它会失败并打印此错误消息.
C:\update.bat master.xml
Migration Failed: cvc-complex-type.2.4.a: Invalid content was found starting with element 'sqlFile'.
One of '{
"http://www.liquibase.org/xml/ns/dbchangelog/1.9":preConditions,
"http://www.liquibase.org/xml/ns/dbchangelog/1.9":property,
"http://www.liquibase.org/xml/ns/dbchangelog/1.9":changeSet,
"http://www.liquibase.org/xml/ns/dbchangelog/1.9":include,
"http://www.liquibase.org/xml/ns/dbchangelog/1.9":includeAll
}' is expected.
Run Code Online (Sandbox Code Playgroud)
我的master.xml非常简单
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<sqlFile path="createUsers.sql"/>
</databaseChangeLog>
Run Code Online (Sandbox Code Playgroud)
任何想法将不胜感激.提前致谢.
我对liquibase一无所知,但这就是XML Schema的美妙之处:通过阅读XSD,我们可以推断出当我们为它提供databaseChangeLog时系统所期望的内容.
如果您在XSD看,你可以看到,实际上是一个<databaseChagneLog>元素应包括列出的元素(的<preCondition>,<property>,<changeSet>等...因为在错误信息的报道.
看来(从阅读XSD)该<sqlFile>元素应该包含在a中<changeSet>.
所以也许你只需要:
... Header + databaseChangelog and its Namespace =as previously
...
<changeSet>
<sqlFile path="createUsers.sql"/>
</changeSet>
</databaseChangeLog>
Run Code Online (Sandbox Code Playgroud)
但正如所说,我对底层语义甚至liquibase的一般目的一无所知.因此,您可以参考liquibase文档以了解您可能需要声明的其他内容等(例如,XSD允许包括许多其他元素,如validCheckSum,preContidtion等)
| 归档时间: |
|
| 查看次数: |
3044 次 |
| 最近记录: |