猿问

如果 Liquibase 因更改集迁移失败而失败

堆栈跟踪是:


    Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set config/liquibase/changelog/20190425094054_added_entity_Kindergarten.xml::20190425094054-1::jhipster:

mental-app_1            |      Reason: java.lang.NullPointerException

mental-app_1            |   at liquibase.changelog.ChangeSet.execute(ChangeSet.java:637)

mental-app_1            |   at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53)

mental-app_1            |   at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:83)

mental-app_1            |   at liquibase.Liquibase.update(Liquibase.java:202)

mental-app_1            |   at liquibase.Liquibase.update(Liquibase.java:179)

mental-app_1            |   at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:353)

mental-app_1            |   at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:305)

mental-app_1            |   at io.github.jhipster.config.liquibase.AsyncSpringLiquibase.initDb(AsyncSpringLiquibase.java:119)

mental-app_1            |   at io.github.jhipster.config.liquibase.AsyncSpringLiquibase.afterPropertiesSet(AsyncSpringLiquibase.java:104)

mental-app_1            |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837)

mental-app_1            |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774)


数据由变更集中的此设置加载:


        <loadData

        file="config/liquibase/data/kindergarten.csv"

        separator=";"

        tableName="kindergarten"/>

数据本身是:


1,4,xxx yyy 2  ,7 905 555-70-29,"rose place, 11г",john doe

2,7,103,"555-68-72, 555-68-73","address xxx 5, ",emett brown

3,2,34,555-28-49,"z street, 72",""

我已将所有空值更新,,为,"",空字符串而不是空值。


所以最后的问题是如何启用 liquibase 调试来定义数据中的哪一行包含空指针问题?现在我必须手动显示有问题的原始文件


交互式爱情
浏览 542回答 3
3回答

摇曳的蔷薇

在您的变更集配置中,该值separator设置为;,但您的 CSV 文件用作,分隔符。更正变更集配置中的值。

哔哔one

是的,在以下情况下也会发生类似的异常:如果属性tableName=""指向loadData具有另一个结构的错误表

红颜莎娜

所以,上述异常是由于缺少 csv 的标题部分引起的!我错过了id;district_id;name;phones;address;directorcsv 的第一行
随时随地看视频慕课网APP

相关分类

Java
我要回答