Skip to content

[0.8.1.RELEASE] TiDB数据库环境下choerodon-tool-liquibase 执行groovy脚本连接断开  #10

@mm20140616

Description

@mm20140616

TiDB 数据库环境下使用choerodon-tool-liquibase执行groovy 脚本时会报出连接断开的错误。

liquibase.exception.LockException: liquibase.exception.UnexpectedLiquibaseException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

根据报错信息发现问题是liquibase.lockservice.StandardLockService#init方法在数据库中生成的databasechangeloglock表中LOCKEDbit类型,liquibase.lockservice.StandardLockService#acquireLock方法在获取锁时会将该字段改为1TiDBbit类型更新为1时会发生错误2013 - Lost connection to MySQL server during query(应该是TiDB的BUG)。 在liquibase 官方文档中标注的LOCKEDint类型。但是代码并不是int类型,可以通过覆盖文件liquibase.sqlgenerator.core.CreateDatabaseChangeLogLockTableGenerator#generateSql修改字段类型来解决这个问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions