4

私は次の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

どうすればいいですか?

4

2 に答える 2

2

これはおそらく、XML ファイルの先頭にいくつかの隠し文字 (BOM、詳細については Google XML BOM など) があるためです。

このリンクは、BOM を削除する方法を示しています。

Windows を使用している場合は、XVI32 (無料の 16 進エディター) が適しています。

于 2012-08-31T04:20:21.303 に答える
0

Liquibase JIRA の問題を参照してください

この問題はスキーマ定義に関連しています...指定されたリンクの添付例からスキーマ定義を試してください

于 2016-08-17T12:10:41.167 に答える