【问题标题】:Sonarqube 5.3: Error installing on Oracle 12 - columns missingSonarqube 5.3:在 Oracle 12 上安装时出错 - 缺少列
【发布时间】:2025-12-10 14:10:01
【问题描述】:

我正在尝试使用 Oracle 12.1.0.2.0 数据库安装 Sonarqube 5.3。

创建 Oracle 用户时授予所有权限(全部授予)和“撤销选择任何”选项。 声纳以“./sonar.sh start”启动,但初始模式创建在表创建后失败插入表“组”:

2016.01.15 09:42:25 ERROR web[jruby.rack] initialization failed
org.jruby.rack.RackInitializationException: An error has occurred, all later migrations canceled:

ActiveRecord::JDBCError: ORA-00904: "VERSION": invalid identifier
: INSERT INTO groups (name, description, created_at, updated_at, displayname, created, lastmodified, version, id) VALUES('sonar-administrators', 'System administrators', TO_TIMESTAMP('2016-01-15 09:42:25:478000','YYYY-MM-DD HH24:MI:SS:FF6
'), TO_TIMESTAMP('2016-01-15 09:42:25:478000','YYYY-MM-DD HH24:MI:SS:FF6'), NULL, NULL, NULL, 0, ?)

将表结构与语句进行比较,我注意到并非所有列都已创建:缺少列 DISPLAYNAME、CREATED、LASTMODIFIED、VERSION!

  1. 为什么不创建这些?
  2. 如果我手动创建它们,声纳之后将无法启动。有没有办法重新初始化初始数据?

使用声纳嵌入式数据库工作正常。

有什么想法吗?

【问题讨论】:

  • 经过进一步调查,我发现我们的数据库中有一些公共同义词与声纳创建的某些表同名。当存在同名对象时,声纳似乎没有创建自己的表。删除同义词,清除架构并重新启动声纳以重新创建架构并没有将其单独 -> 相同的错误。我认为那可能不是原因……有什么想法吗?
  • 现在尝试在本地 Oracle XE 数据库上使用初始数据创建模式,然后进行迁移。

标签: oracle installation sonarqube sonarqube5.3


【解决方案1】:

问题解决了!

似乎数据库配置和权限与我们数据库上的公共同义词相结合导致了这个问题。 问题已通过以下步骤解决:

  • 清除部分生成的架构,包括所有包含的对象
  • 在新/干净的 Oracle XE 11 数据库上安装 Sonarqube 5.3 并创建基本配置
  • 停止 Sonarqube 并导出数据库架构
  • 在 Oracle 12 数据库上导入数据库架构

启动 Sonarqube 后,我意识到 Oracle JDBC 驱动程序 12.1.0.1 在启动时产生 NullPointerException 的问题。 基本上这是驱动程序本身的一个错误,Oracle 已经修复了 -> 使用 ojdbc-driver 12.1.0.2 来修复这个问题!

希望这可以帮助其他有类似问题的人。

【讨论】: