jhipster - Liquibase 不会在香草 Jhipster 应用程序上启动
问题描述
生成的 Web 应用程序在引导后端时“崩溃”,因为 Liquibase 将无法达到一致的状态。崩溃在这里意味着,webapp 本身运行,但它不能使用,因为后端无法授权你。我在 SO 上阅读了有关 Liquibase 的其他帖子,但没有任何建议有效。
执行的步骤:
- 访问Jhipster Online以生成 vanilla Webapp 作为起点。
- 下载 ZIP 文件并将其解压缩到我选择的目录
chmod +x ./mvnw
npm i
- 跑
./mvnw -P-webapp
系统信息
- Ubuntu 20.04.03 LTS
node
v14.16.0javac
开放JDK 11.0.11java
:- openjdk 版本“11.0.11” 2021-04-20
- OpenJDK 运行环境(build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
- OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, 混合模式, 共享)
我解决问题的步骤
- 创建新目录
- 使用or切换
node
版本nvm use --lts
nvm use [version no.]
jhipster
在每个项目上运行并选择一些东西- 运行
./mvnw -P-webapp
--> "观看 LiqourBase 燃烧 :-(" - 或者将 java-version 更改为 ie 16.x
- 重新启动
- 诅咒,用不同的选择重复上面的步骤
我不知道为什么它停止工作。我也观察到其他一些最近使用 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]
----------------------------------------------------------
解决方案
推荐阅读
- java - 一种在 TextView 中更改文本时间的方法?
- c++ - 静态向量对字符串类成员函数
- react-native - 滚动视图在本机反应中不滚动
- c# - 获取表格单元格值并提交给删除函数
- c++ - 我有 2 段 c++ 代码应该工作相同
- javascript - Vue JS计算属性没有重新计算
- vba - VBA 中的 SOAP 调用是否默认使用 IE?
- python - 在向用户询问循环中的新变量之前在打印后添加一个空行
- python - PyArg_ParseTupleAndKeywords 抛出警告:ISO C++ 禁止将字符串常量转换为 'char*' [-Wwrite-strings]
- flutter - 如何让 Flutter 应用对网络变化做出反应?