java - 如果 Liquibase 因更改集迁移失败而失败,我的 csv 数据有什么问题...原因 : java. lang.NullPointerException

标签 java database-migration 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)
mental-app_1            |   ... 107 common frames omitted
mental-app_1            | Caused by: java.lang.NullPointerException: null
mental-app_1            |   at liquibase.change.core.LoadDataChange.retrieveMissingColumnLoadTypes(LoadDataChange.java:628)
mental-app_1            |   at liquibase.change.core.LoadDataChange.generateStatements(LoadDataChange.java:283)
mental-app_1            |   at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1209)
mental-app_1            |   at liquibase.changelog.ChangeSet.execute(ChangeSet.java:600)
mental-app_1            |   ... 117 common frames omitted

数据是通过变更集中的此设置加载的:

        <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",""

我已将所有空 ,, 更新为 ,"", 以包含空字符串而不是 null。

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

最佳答案

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

关于java - 如果 Liquibase 因更改集迁移失败而失败,我的 csv 数据有什么问题...原因 : java. lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57524194/

相关文章:

java - 如何在 Apache Flink 中正确初始化任务状态?

java - gradle项目构建失败

java - [Linux] 为 JNI 加载 .so 文件导致 : java. lang.UnsatisfiedLinkError : no libdebug in java. library.path

Django 1.9 在迁移中删除外键

visual-studio-2012 - "need migration"对 Visual Studio 2012 中的 SQL Server 数据库项目意味着什么

spring-data - Liquibase:无法解析持久性单元根 URL

liquibase - 如何更新现有的变更集

java - Hibernate 保存返回错误的生成 ID

ruby-on-rails - rails 迁移 : Determine what is being used as database

maven - 基于多个数据库的 Liquibase