2014-09-02 58 views
0

您好「measure_data」 列遷移錯誤(NPE)從SonarQube 4.3.2升級到4.4

當遷移從聲納4.3.2至4.4數據庫更新失敗時有以下例外:

2014.08.28 13:16:31 INFO [DbMigration] == MergeMeasureDataIntoProjectMeasures: migrating ============================ 
2014.08.28 13:16:31 INFO [DbMigration] – add_column(:project_measures, "measure_data", :binary, {:null=>true}) 
2014.08.28 13:28:59 INFO [DbMigration] -> 747.4790s 
2014.08.28 13:28:59 INFO [DbMigration] -> 10014240 rows 
2014.08.28 13:29:02 INFO [o.s.s.d.m.MassUpdater] 0 rows have been updated 
2014.08.28 13:29:02 ERROR [o.s.s.d.m.DatabaseMigrator] Fail to execute database migration: org.sonar.server.db.migrations.v44.MeasureDataMigration 
java.lang.IllegalStateException: java.lang.NullPointerException 
2014.08.28 13:29:02 ERROR [o.s.s.ui.JRubyFacade] Fail to upgrade database 
An error has occurred, all later migrations canceled: 
Fail to execute database migration: org.sonar.server.db.migrations.v44.MeasureDataMigration 
org.sonar.server.db.migrations.DatabaseMigrator.executeMigration(DatabaseMigrator.java:100 

嘗試通過中間4.3.3執行遷移時,4.3.2 - > 4.3.3遷移成功,4.3.3 - > 4.4遷移失敗,並出現相同的異常。

你見過這樣的問題嗎?你會建議做什麼?

我們發現SONAR-5249合併measure_data和project_measure表(但它似乎被固定在4.4中發現4.4,無連接的問題。+範圍)

附:從sonar用戶郵件列表複製此問題。看起來這個問題沒有得到任何牽引。

回答

0

由於某種原因measure_data映射表包含一個條目,其中measure_id等於NULL。使用

SELECT * FROM measure_data WHERE measure_id IS NULL 

檢查是否是這種情況。錯誤的條目可能會被刪除使用

DELETE FROM measure_data WHERE id=${ERRONEOUS_MEASURE_DATA_ID}