Sonarqube 5.3:在 Oracle 12 上安装时出错 - 缺少列
Sonarqube 5.3: Error installing on Oracle 12 - columns missing
我正在尝试使用 Oracle 12.1.0.2.0 数据库安装 Sonarqube 5.3。
创建 Oracle 用户时已授予所有权限(grant all)和 "revoke select any" 选项。
Sonar 以“./sonar.sh start”开始,但在 table 创建插入到 table "GROUPS":
之后初始模式创建失败
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, ?)
将 table 结构与语句进行比较,我注意到并非所有列都已创建:缺少列 DISPLAYNAME、CREATED、LASTMODIFIED、VERSION!
- 为什么没有创建这些?
- 如果我手动创建它们,之后声纳将无法启动。有什么方法可以重新初始化初始数据吗?
使用声纳嵌入式数据库工作正常。
有什么想法吗?
问题已解决!
似乎数据库配置和权限与我们数据库上的 public 同义词相结合导致了这个问题。
已通过执行以下步骤解决问题:
- 清除部分生成的模式,包括所有包含对象
- 在 newly/clean Oracle XE 11 数据库上安装 Sonarqube 5.3 并创建基本配置
- 停止 Sonarqube 并导出数据库架构
- 在 Oracle 12 数据库上导入数据库模式
启动 Sonarqube 后,我意识到 Oracle JDBC 驱动程序 12.1.0.1 在启动时产生 NullPointerException 的问题。
基本上这是驱动程序本身的一个错误,已被 Oracle 修复 -> 使用 ojdbc-driver 12.1.0.2 来修复这个问题!
希望这对其他遇到类似问题的人有所帮助。
我正在尝试使用 Oracle 12.1.0.2.0 数据库安装 Sonarqube 5.3。
创建 Oracle 用户时已授予所有权限(grant all)和 "revoke select any" 选项。 Sonar 以“./sonar.sh start”开始,但在 table 创建插入到 table "GROUPS":
之后初始模式创建失败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, ?)
将 table 结构与语句进行比较,我注意到并非所有列都已创建:缺少列 DISPLAYNAME、CREATED、LASTMODIFIED、VERSION!
- 为什么没有创建这些?
- 如果我手动创建它们,之后声纳将无法启动。有什么方法可以重新初始化初始数据吗?
使用声纳嵌入式数据库工作正常。
有什么想法吗?
问题已解决!
似乎数据库配置和权限与我们数据库上的 public 同义词相结合导致了这个问题。 已通过执行以下步骤解决问题:
- 清除部分生成的模式,包括所有包含对象
- 在 newly/clean Oracle XE 11 数据库上安装 Sonarqube 5.3 并创建基本配置
- 停止 Sonarqube 并导出数据库架构
- 在 Oracle 12 数据库上导入数据库模式
启动 Sonarqube 后,我意识到 Oracle JDBC 驱动程序 12.1.0.1 在启动时产生 NullPointerException 的问题。 基本上这是驱动程序本身的一个错误,已被 Oracle 修复 -> 使用 ojdbc-driver 12.1.0.2 来修复这个问题!
希望这对其他遇到类似问题的人有所帮助。