【问题标题】:Mysql dump comments directives and simple commentsMysql转储注释指令和简单注释
【发布时间】:2013-04-08 20:30:57
【问题描述】:

我们计划使用 Flyway 来管理我们的迁移,因为它看起来是一个非常适合我们需求的工具。我们今天拥有的是用于开发的 MySQL 数据库,以及用于生产周期的 mysql - oracle DB。

今天似乎不可能将 Flyway 与 ant 集成来处理 mysqldump cmets 指令中的简单 cmets。它看起来像这样:

/*!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)

我错过了什么可以处理这个“评论”重叠问题的地方吗?

问候

【问题讨论】:

    标签: mysqldump flyway


    【解决方案1】:

    将 cmets 放在一个新行上,您应该可以开始了。 Flyway 的解析器目前无法处理行尾 cmets 和每行多个语句。

    我计划在 2.2 中及时解决这个问题。在此之前,请使用此解决方法。

    【讨论】:

    • 感谢您的快速回答。我应该编写一些工具来解析我的 mysql 转储。我会告诉你它是否有效
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2010-11-04
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多