0

私は次のように移行のためのディレクトリ構造を持っています:

db1:

  • 最新/(トリガー、関数、手順)
  • テーブル/
  • v000 / master.xml
  • update.xml

db1 / update.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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">

    <include   file="v000/master.xml" relativeToChangelogFile="true"/>

</databaseChangeLog>

db2 :( db1 / update.xmlを含めるようにしてください)ここにスキーマを追加します。db1スキーマに拡張/追加する必要があるためです)

  • update.xml

db2 / update.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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">


    <include   file="../db1/update.xml" />

</databaseChangeLog>

db1> liquibase --changeLogFile = update.xml更新、成功

しかし

db2> liquibase --changeLogFile=update.xml検証

db1 / v000/master.xmlから含まれるテーブルの検証エラーを表示する

<include file="tables/12_createTable_audiences.xml" />

Error Reading Migration File:tables/12_createTable_audiences.xml .....

次の変更によってエラーを修正した場合(各テーブル:db1 / v000 / mater.xml内)

 <include file="../tables/12_createTable_audiences.xml" relativeToChangelogFile="true"/>

db2> liquibase --changeLogFile=update.xml検証/更新は正常に機能します

しかし

db2> liquibase --changeLogFile = update.xml dbDocs〜/ docs / db1

テーブル12_createTable_audiences.xmlで失敗します

これら(パスの問題)を修正する方法を知っている人はいますか?updateコマンドとdbDocコマンドが同じパスに対して異なる動作をするのはなぜですか?

よろしくお願いします。

4

1 に答える 1

0

属性を使用する代わりにrelativeToChangelogFile、ルートからインクルード ファイルのパスを指定してみてください。何かのようなもの

<iuclude file = "./Update/db1/update.xml" />
于 2013-02-13T05:51:23.650 に答える