我刚刚安装了 SonarQube 4.5,连接到 Postgres 数据库。
就代码分析而言,一切似乎都运行良好,但是当我通过设置屏幕或注册表单创建新用户时,会在数据库中将“活动”设置为 null 来创建用户。如果我手动将“活动”更新为true,我可以使用新用户,一切看起来都很好。
“用户”上的“活动”列默认设置为真。
还有其他使用相同数据库的 SonarQube 实例,每个实例都有自己的模式。正因为如此,我在安装时遇到了一些初始困难,并且不得不手动进行数据库迁移的某些部分,所以我假设我错过了一些东西,但我对 Rails 一无所知,所以我很难调试。
我不确定这是否相关,但这是我运行 SonarQube 所经历的过程:
在它的引导过程的早期,Rails 显然能够从其他模式之一中找到一个“schema_migrations”表,但是当它试图从“schema_migrations”中选择时(在正确的模式中)它找不到它,所以抛出异常并且数据库设置中止。因此,我在我的模式中创建了一个“schema_migrations”表,其中有一列“版本”,重新启动了 Sonar,它现在处于认为它正在执行版本升级并开始数据库迁移的状态。
'011_create_administrator.rb'中的迁移失败,因为它试图将 NULL 插入'users'的'active'列,而该列尚未创建。因此,我手动运行了没有“活动”部分的插入,将“schema_migrations.version”更新为 11,然后重新启动。
迁移再次开始,现在在“530_merge_measure_data_into_project_measures.rb”中失败了
"Fail to execute database migration: org.sonar.server.db.migrations.v44.MeasureDataMigration
org.postgresql.util.PSQLException: ERROR: column m.measure_data does not exist."
因此,我将'measure_data'列添加到'project_measures',然后重新启动。现在迁移成功完成,SonarQube 正常启动,我能够以管理员身份登录并开始分析代码。