首页 > 解决方案 > Liquibase 不会在香草 Jhipster 应用程序上启动

问题描述

生成的 Web 应用程序在引导后端时“崩溃”,因为 Liquibase 将无法达到一致的状态。崩溃在这里意味着,webapp 本身运行,但它不能使用,因为后端无法授权你。我在 SO 上阅读了有关 Liquibase 的其他帖子,但没有任何建议有效。

执行的步骤:

系统信息

我解决问题的步骤

我不知道为什么它停止工作。我也观察到其他一些最近使用 Jhipster 制作的项目的问题。它是什么?我必须以.m2这种方式彻底擦拭吗?

日志:

2021-11-09 14:22:14.210 DEBUG 22360 --- [kground-preinit] org.jboss.logging                        : Logging Provider: org.jboss.logging.Log4j2LoggerProvider
2021-11-09 14:22:14.253  INFO 22360 --- [  restartedMain] dev.semo.some.Webapp         : Starting Webapp84 using Java 11.0.11 on computer with PID 22360 (/home/semo/dev/work/playground/target/classes started by semo in /home/semo/dev/work/playground)
2021-11-09 14:22:14.254 DEBUG 22360 --- [  restartedMain] dev.semo.some.Webapp         : Running with Spring Boot v2.5.5, Spring v5.3.10
2021-11-09 14:22:14.255  INFO 22360 --- [  restartedMain] dev.semo.some.Webapp         : The following profiles are active: dev,api-docs

[...omitted...]

2021-11-09 14:22:18.725 DEBUG 22360 --- [  restartedMain] d.b.semo.some.config.AsyncConfiguration   : Creating Async Task Executor
2021-11-09 14:22:18.853 DEBUG 22360 --- [  restartedMain] d.b.s.some.config.LiquibaseConfiguration  : Configuring Liquibase
2021-11-09 14:22:19.076  WARN 22360 --- [ebapp-84-task-1] t.j.c.liquibase.AsyncSpringLiquibase     : Starting Liquibase asynchronously, your database might not be ready at startup!
2021-11-09 14:22:20.770 ERROR 22360 --- [ebapp-84-task-1] t.j.c.liquibase.AsyncSpringLiquibase     : Liquibase could not start correctly, your database is NOT ready: liquibase.exception.MigrationFailedException: Migration failed for change set config/liquibase/changelog/00000000000000_initial_schema.xml::00000000000001::jhipster:
     Reason: liquibase.exception.DatabaseException: Syntax Fehler in SQL Befehl "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"
Syntax error in SQL statement "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"; SQL statement:
IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON [42000-200] [Failed SQL: (42000) IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON]

liquibase.exception.LiquibaseException: liquibase.exception.MigrationFailedException: Migration failed for change set config/liquibase/changelog/00000000000000_initial_schema.xml::00000000000001::jhipster:
     Reason: liquibase.exception.DatabaseException: Syntax Fehler in SQL Befehl "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"
Syntax error in SQL statement "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"; SQL statement:
IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON [42000-200] [Failed SQL: (42000) IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON]
    at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:124)
    at liquibase.Liquibase.lambda$null$0(Liquibase.java:265)
    at liquibase.Scope.lambda$child$0(Scope.java:177)
    at liquibase.Scope.child(Scope.java:186)
    at liquibase.Scope.child(Scope.java:176)
    at liquibase.Scope.child(Scope.java:155)
    at liquibase.Scope.child(Scope.java:239)
    at liquibase.Liquibase.lambda$update$1(Liquibase.java:264)
    at liquibase.Scope.lambda$child$0(Scope.java:177)
    at liquibase.Scope.child(Scope.java:186)
    at liquibase.Scope.child(Scope.java:176)
    at liquibase.Scope.child(Scope.java:155)
    at liquibase.Liquibase.runInScope(Liquibase.java:2404)
    at liquibase.Liquibase.update(Liquibase.java:211)
    at liquibase.Liquibase.update(Liquibase.java:197)
    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:314)
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:269)
    at org.springframework.boot.autoconfigure.liquibase.DataSourceClosingSpringLiquibase.afterPropertiesSet(DataSourceClosingSpringLiquibase.java:46)
    at tech.jhipster.config.liquibase.AsyncSpringLiquibase.initDb(AsyncSpringLiquibase.java:118)
    at tech.jhipster.config.liquibase.AsyncSpringLiquibase.lambda$afterPropertiesSet$0(AsyncSpringLiquibase.java:93)
    at tech.jhipster.async.ExceptionHandlingAsyncTaskExecutor.lambda$createWrappedRunnable$1(ExceptionHandlingAsyncTaskExecutor.java:78)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set config/liquibase/changelog/00000000000000_initial_schema.xml::00000000000001::jhipster:
     Reason: liquibase.exception.DatabaseException: Syntax Fehler in SQL Befehl "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"
Syntax error in SQL statement "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"; SQL statement:
IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON [42000-200] [Failed SQL: (42000) IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON]
    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:695)
    at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:49)
    at liquibase.changelog.ChangeLogIterator$2.lambda$null$0(ChangeLogIterator.java:111)
    at liquibase.Scope.lambda$child$0(Scope.java:177)
    at liquibase.Scope.child(Scope.java:186)
    at liquibase.Scope.child(Scope.java:176)
    at liquibase.Scope.child(Scope.java:155)
    at liquibase.changelog.ChangeLogIterator$2.lambda$run$1(ChangeLogIterator.java:110)
    at liquibase.Scope.lambda$child$0(Scope.java:177)
    at liquibase.Scope.child(Scope.java:186)
    at liquibase.Scope.child(Scope.java:176)
    at liquibase.Scope.child(Scope.java:155)
    at liquibase.Scope.child(Scope.java:239)
    at liquibase.changelog.ChangeLogIterator$2.run(ChangeLogIterator.java:94)
    at liquibase.Scope.lambda$child$0(Scope.java:177)
    at liquibase.Scope.child(Scope.java:186)
    at liquibase.Scope.child(Scope.java:176)
    at liquibase.Scope.child(Scope.java:155)
    at liquibase.Scope.child(Scope.java:239)
    at liquibase.Scope.child(Scope.java:243)
    at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:66)
    ... 23 common frames omitted
Caused by: liquibase.exception.DatabaseException: Syntax Fehler in SQL Befehl "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"
Syntax error in SQL statement "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"; SQL statement:
IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON [42000-200] [Failed SQL: (42000) IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON]
    at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:393)
    at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:82)
    at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:150)
    at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1279)
    at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1261)
    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:660)
    ... 43 common frames omitted
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax Fehler in SQL Befehl "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"
Syntax error in SQL statement "IF[*] EXISTS(SELECT TABLE_NAME
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE TABLE_NAME = 'jhi_user'
             AND TABLE_SCHEMA = 'PUBLIC'
             AND COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.JHI_USER ON"; SQL statement:
IF EXISTS(select TABLE_NAME
            from INFORMATION_SCHEMA.COLUMNS
           where TABLE_NAME = 'jhi_user'
             and TABLE_SCHEMA = 'PUBLIC'
             and COLUMNPROPERTY(object_id(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1)
    SET IDENTITY_INSERT PUBLIC.jhi_user ON [42000-200]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:453)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
    at org.h2.message.DbException.get(DbException.java:205)
    at org.h2.message.DbException.get(DbException.java:181)
    at org.h2.message.DbException.getSyntaxError(DbException.java:229)
    at org.h2.command.Parser.getSyntaxError(Parser.java:1051)
    at org.h2.command.Parser.parsePrepared(Parser.java:1013)
    at org.h2.command.Parser.parse(Parser.java:843)
    at org.h2.command.Parser.parse(Parser.java:819)
    at org.h2.command.Parser.prepareCommand(Parser.java:738)
    at org.h2.engine.Session.prepareLocal(Session.java:657)
    at org.h2.engine.Session.prepareCommand(Session.java:595)
    at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1235)
    at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:212)
    at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:201)
    at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94)
    at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
    at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:389)
    ... 48 common frames omitted

2021-11-09 14:22:21.028 DEBUG 22360 --- [  restartedMain] d.b.semo.some.security.jwt.TokenProvider  : Using a Base64-encoded JWT secret key
2021-11-09 14:22:21.940  INFO 22360 --- [  restartedMain] o.a.k.clients.producer.ProducerConfig    : ProducerConfig values: 

    [...omitted...]
    
2021-11-09 14:22:22.057  INFO 22360 --- [  restartedMain] o.a.kafka.common.utils.AppInfoParser     : Kafka version: 2.7.1
2021-11-09 14:22:22.057  INFO 22360 --- [  restartedMain] o.a.kafka.common.utils.AppInfoParser     : Kafka commitId: 61dbce85d0d41457
2021-11-09 14:22:22.058  INFO 22360 --- [  restartedMain] o.a.kafka.common.utils.AppInfoParser     : Kafka startTimeMs: 1636464142055
2021-11-09 14:22:22.072  WARN 22360 --- [ad | producer-1] org.apache.kafka.clients.NetworkClient   : [Producer clientId=producer-1] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

[... omitted ...]

2021-11-09 14:22:22.910 DEBUG 22360 --- [  restartedMain] t.j.c.apidoc.SpringfoxAutoConfiguration  : Starting OpenAPI docs
2021-11-09 14:22:22.928 DEBUG 22360 --- [  restartedMain] t.j.c.apidoc.SpringfoxAutoConfiguration  : Started OpenAPI docs in 18 ms
2021-11-09 14:22:22.953 DEBUG 22360 --- [  restartedMain] d.b.s.kea.config.DatabaseConfiguration   : H2 database is available on port 18501
2021-11-09 14:22:23.795  INFO 22360 --- [  restartedMain] org.jboss.threads                        : JBoss Threads version 3.1.0.Final
2021-11-09 14:22:24.112  INFO 22360 --- [  restartedMain] dev.semo.some.Webapp         : Started Webapp84 in 10.846 seconds (JVM running for 11.77)
2021-11-09 14:22:24.116  INFO 22360 --- [  restartedMain] dev.semo.some.Webapp         : 
----------------------------------------------------------
    Application 'webapp84' is running! Access URLs:
    Local:      http://localhost:8501/
    External:   http://127.0.1.1:8501/
    Profile(s):     [dev, api-docs]
----------------------------------------------------------

标签: jhipsterliquibase

解决方案


推荐阅读