erupt icon indicating copy to clipboard operation
erupt copied to clipboard

使用H2数据库因与数据库关键字同名而导致初次启动报错

Open sineatos opened this issue 9 months ago • 0 comments

版本情况

JDK版本:java version "17.0.1" 2021-10-19 LTS
erupt版本: 1.12.12

问题描述(包括截图)

  1. 基于页面 https://www.erupt.xyz/#!/doc 中快速部署章节的流程编写代码,但改用h2数据库,发现数据库初始化失败

  2. 堆栈信息

image

  1. 测试涉及到的文件(注意脱密)

根据错误信息,发现初始化语句中的字段value与h2的一个关键字同名(参考:https://h2database.com/html/advanced.html):

create table e_upms_menu (
  id bigint generated by default as identity, 
  create_by varchar(255), 
  create_time timestamp, 
  update_by varchar(255), 
  update_time timestamp, 
  code varchar(64), 
  icon varchar(255), 
  name varchar(255), 
  param varchar(2000), 
  sort integer, 
  status integer, 
  type varchar(255),
  value varchar(255), 
  parent_menu_id bigint, 
  primary key (id)
)

目前尝试可行处理方法是在配置中设置忽略关键字,这样可以成功启动:

spring:
  datasource:
    url: jdbc:h2:file:./erupt;AUTO_SERVER=TRUE;NON_KEYWORDS=VALUE
    platform: h2
    username: sa
    password:
    driverClassName: org.h2.Driver
  jpa:
    show-sql: true
    database-platform: org.hibernate.dialect.H2Dialect
    generate-ddl: true
    database: h2

但建议作者还是修复一下这个问题。

sineatos avatar May 09 '24 13:05 sineatos