Liquibase更新失败

时间:2012-08-31 03:58:06

标签: liquibase

我在liquibase

上使用以下快速入门

我的xml代码:

<?xml version="1.0" encoding="UTF-8"?> 
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">

    <changeSet id="1" author="bob">
        <createTable tableName="department">
            <column name="id" type="int">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="varchar(50)">
                <constraints nullable="false"/>
            </column>
            <column name="active" type="boolean" defaultValueBoolean="true"/>
        </createTable>
    </changeSet>

</databaseChangeLog>

当我使用“update”命令通过命令行运行Liquibase时.Liquibase告诉我这个

INFO 8/31/12 9:17 AM:liquibase: Successfully released change log lock
Liquibase Update Failed: Content is not allowed in prolog.
SEVERE 8/31/12 9:17 AM:liquibase: Content is not allowed in prolog.
liquibase.exception.ChangeLogParseException: Error parsing line 1 column 1 of dat
abase.xml: Content is not allowed in prolog.
        at liquibase.parser.core.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXP
arser.java:106)
        at liquibase.Liquibase.update(Liquibase.java:107)

我的更新命令是

liquibase --driver=com.mysql.jdbc.Driver  --classpath=mysql-connector-java-5.1.6.jar   --changeLogFile=database.xml --url="jdbc:mysql://localhost:3306/sample" --username=root --password=password  update

我该怎么做?

2 个答案:

答案 0 :(得分:2)

这可能是因为在XML文件的开头有几个隐藏的字符(例如BOM,谷歌XML BOM以获取更多信息)。

This link显示了如何删除BOM。

如果您使用的是Windows,XVI32(免费的十六进制编辑器)将适用于您。

答案 1 :(得分:0)

请参阅Liquibase JIRA issue

此问题与架构定义有关...尝试使用给定链接的附件示例中的架构定义

相关问题