Upgrade Fails: Problem upgrading with script, Violation of unique constraint on upgrade_33.sql

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

症状

Upgrading from Fisheye/Crucible version 1.6.X to 2.X fails with an error similar to the following:

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.cenqua.crucible.hibernate.DBControlFactoryImpl]:
 Constructor threw exception; nested exception is com.cenqua.crucible.hibernate.CruDBException: 
Problem upgrading with script /data/apps/fecru-2.0.0/sql/HSQL/upgrade/upgrade_33.sql: SQL script error on line 54: 
"insert into cru_inline_comment (select distinct(cru_comment), cru_frx_id from cru_revision_comment where cru_line_range is not null);" 
(Violation of unique constraint SYS_PK_649: duplicate value(s) for column(s) CRU_COMMENT_ID), 
please contact http://www.atlassian.com/support/

原因

Corruptions in the database, duplicate entries, prevent the upgrade script from completing successfully.

ソリューション

  1. Connect to the HSQL DB using this connection procedure.
  2. Run the following SQL queries:
    1. select comment from revision_comment where linerange is null group by comment having count(comment) > 1;
      1. The result will be an ID number, for example: 22
    2. select * from revision_comment where comment=22;
      1. The result will will be the offending data, for example:

 

122008-12-0217:35:21(null)12658222
19 2008-12-0812:06:23(null)126104022

3. Either run the following SQL command (don't forget to commit the change):

delete from revision_comment where rc_id = 19;

commit;

または

Create the SQL script and apply it directly from the command line:

patch.sql

delete from revision_comment where rc_id = 19;
commit;
  1. Go to Administration > Backup and create a backup of the db in your crucible 1.6.6.
  2. Shutdown the Fisheye/Crucible server.
  3. Go to the FISHEYE_HOME/lib directory and run the following command, replacing FISHEYE_HOME and FISHEYE_INST with the fully qualified path:

 

java -Xms512m -Xmx512m -jar FISHEYE_HOME/lib/hsqldb-1.8.0.10.jar --inlineRC "URL=jdbc:hsqldb:file:FISHEYE_INST/var/data/crudb/crucible;shutdown=true,USER=sa,PASSWORD=" patch.sql

4. The above command should result in output similar to the following:

x rows updated (where x is some number > 0)

最終更新日 2018 年 7 月 31 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.