0

Flyway は私たちのニーズに完全に適合する優れたツールであると思われるため、移行の管理に Flyway を使用することを計画しています。現在、開発用の MySQL データベースと、本番サイクル用の mysql - Oracle DB があります。

Flyway が ant と統合されている現在、mysqldump コメント ディレクティブに含まれる単純なコメントを処理することは不可能に思えます。次のようになります。

/*!50003 CREATE*/ /*!50020 DEFINER=`root`@`localhost`*/ /*!50003 PROCEDURE `lockObject`(
    IN parTypeId INTEGER,
    IN parObjectId INTEGER,
    IN parUserId INTEGER,
    IN parLockTime INTEGER,
    OUT parSuccess BOOLEAN,
    OUT parLockedOn INTEGER, /* time is elapsing from the beginning */
    OUT parErrUserId INTEGER)
BEGIN

    #proc declaration

END */;;

Flyway 移行は次のエラーを返します

com.googlecode.flyway.core.api.FlywayException: Error executing statement at line 10807:    OUT parErrUserId INTEGER)
BEGIN
    DECLARE locTableName CHAR(50)
Caused by com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUT parErrUserId INTEGER)

この「コメント」の影響の問題に対処できるように、私が見逃したものはありますか?

よろしく

4

1 に答える 1

0

コメントを新しい行に入れれば、準備完了です。Flyway のパーサーは現在、行末コメントと 1 行に複数のステートメントを処理するのに問題があります。

2.2 に間に合うようにこれに対処する予定です。それまでは、この回避策を使用してください。

于 2013-04-16T16:28:36.740 に答える