2013-05-02 8 views
8

私はどのようにchanglogFile in.sql形式を生成するには?

 
liquibase --driver=com.mysql.jdbc.Driver 
      --classpath=mysql-connector-java-5.1.24-bin.jar 
      --changeLogFile=test_diff.sql 
      --url="jdbc:mysql://localhost/provision" 
      --username=root 
      --password=** 
      diffChangeLog 
      --referenceUrl=jdbc:mysql://localhost/provision_old 
      --referenceUsername=root 
      --referencePassword=*** 

私はエラーを取得、次の.sql形式でchangelogFileをgenereateするには、このクエリを実行しなかった

 
Liquibase Update Failed: No serializer associated with the filename or extension 'sql' 
SEVERE 5/2/13 12:50 PM:liquibase: No serializer associated with the filename or extension 'sql' 
java.lang.RuntimeException: No serializer associated with the filename or extension 'sql' 

それは.SQLギでchangelogfileを生成することは可能ですか?

答えて

6

From the manual

diffChangeLogが標準アウト

(強調鉱山)へのターゲット・データベースへの基本データベース

ので

--changeLogFile指定を更新するために変更ログXMLを書き込みSQL出力ではなくXML出力の名前。

まず、XMLを作成する必要があります。あなたはSQLスクリプトを生成することができました。 updateSQLコマンドを使用して空のデータベースに適用します。その後、LiquibaseはSQLスクリプトを作成します。

+0

を参照することができます。 SQL postfixを使用するliquibaseコマンドは、実際に変更を適用せずにSQLを出力することを意味します。 ユーザはこれをコマンドラインに追加することができます: 'diff.sql'は出力をファイルにリダイレクトします。 したがって、まずdiffChangeLogを実行して、XML形式の変更ログを生成します。次に、updateSQL> diff.sqlを実行して、更新用のSQLを生成します。 – dnang

+0

@dnangそれを試しましたか?あなたのベースデータベースとの違いは何ですか?実際には、空のデータベースが必要です。 –

1

のparamで試してみてください:

--changeLogFile = "./ changelog.mysql.sql"

実際にあなたが空のデータベースを必要としないここhttp://www.liquibase.org/documentation/changes/sql.html

+1

changelogをsqlとしてシリアライズするには、 '* .databaseType.sql'という形式のファイル名が必要です –

関連する問題