Big problems updating to Jira 7 / Fisheye 4
Asked by RMA:

Hi,

I'm using Jira + Fisheye for 7 years and upgraded it a lot of times, and it always went very smoothly as I have no specific modules or personalizations.

This time, I'm trying to upgrade my Jira 6.4.10 / Fisheye 3.9.0 to the last versions.

I tried to upgrade first to Jira 7.0.11 / Fisheye 4.0.4.

As usual I upgrade JIRA first, it does not start after upgrade but KB helped me understand I should remove 'plugin.1426043159378966508.jira-calendar-plugin-2.1.11.jar'. After that, everything works fine.

Then I upgrade Fisheye as usual by replacing the previous directory with the files containes in the ZIP, and it fails with this error :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dbControlFactory' defined in ServletContext resource \[/WEB-INF/appli$  
(Table 'cwd_application' already exists), please contact <http://www.atlassian.com/support/>  
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:278) \[spring-beans-4.0.9.RELEASE.jar:4$  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1115) \[s$  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) \[sp$  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) \[spring-be$  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) \[spring-bean$

...

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.cenqua.crucible.hibernate.DBControlFactoryImpl\]: Cons$  
(Table 'cwd_application' already exists), please contact <http://www.atlassian.com/support/>  
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164) \[spring-beans-4.0.9.RELEASE.jar:4.0.9.RELEASE\]  
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:125) \[spring-beans-4.0.9.RELEA$  
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:270) \[spring-beans-4.0.9.RELEASE.jar:4$  
... 40 more  
Caused by: com.cenqua.crucible.hibernate.CruDBException: Problem upgrading with script /damo1/opt/jiradev/atlassian/fisheye/sql/MYSQL/upgrade/upgrade_92.sql$  
(Table 'cwd_application' already exists), please contact <http://www.atlassian.com/support/>

...

Caused by: com.cenqua.crucible.hibernate.CruDBException: SQL script error on line 4: "create table cwd_application (id bigint not null, application_name var$  
(Table 'cwd_application' already exists), please contact <http://www.atlassian.com/support/>

...

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'cwd_application' already exists  

I don't understand what happens. Looking inside 'upgrade_92.sql' showed me that it indeed tries to create many tables that already exist: "cwd_application cwd_application_address cwd_application_alias cwd_app_dir_group_mapping cwd_app_dir_mapping cwd_app_dir_operation cwd_directory cwd_application_attribute cwd_directory_attribute cwd_directory_operation cwd_group cwd_expirable_user_token cwd_granted_perm cwd_membership cwd_group_attribute cwd_user cwd_property cwd_token"

I found no real tutorial in the KB for this case/error.

So my question is : what is the correct process to upgrade my Jira 6.4.10 / Fisheye 3.9.0 to the last versions.

Thanks in advance.

Rapha?l Martin


Answers:
author: Grzegorz Lewandowski
body: It seems like you used a single database for 2 products JIRA and Fishey\&Crucible, which is against Atlassian recommendations.

Fisheye\&Crucible in version 4.0 completely redesigned user management system and introduced Atlassian library called Embedded Crowd, which is already used by JIRA (and other Atlassian products). Generally speaking, there shouldn't be Embedded Crowd tables in the database instance so Fisheye just tries to create them. But since you two apps used the same database it's not true.

In your case, the best approach would be to restore the FeCru backup you took before upgrading to a newly created database designed for FeCru app only (technically it can be the same RDS system, however it may be a performance bottleneck). And then try to upgrade.   

That being said, may I ask why you try to upgrade Fisheye to so old version, 4.0 End of Life will happen in approx 2 weeks time. Why don't you upgrade to more modern version?  

<br />

<br />

EDIT: Here's a [link](https://confluence.atlassian.com/support/atlassian-support-end-of-life-policy-201851003.html) to Atlassian EOL policy

<br />

<br />

Best regards,

Grzegorz Lewandowski

comments: author: RMA
body: Thanks for your answer.

I usually strictly follow documentation when I install a software so I must have missed that individual database stuff 8 years ago.

Anyway I will now duplicate my database to isolate fisheye as required. Any chance to find a list of which tables are used by JIRA and which one by Fisheye so I could remove it in each database in order to have a clean schema and avoid similar problems in the future ?

The reason why I'm upgrading to Jira 7.0.11 / Fisheye 4.0.4 is because I tried to go straight to Jira 7.8.0 / Fisheye 4.5.2, but Jira 7.8 refused to upgrade directly from 6.4.10 ...

So I'm doing this intermediate step.

I will let you know when it's over. If you can provide me the list of tables used by each product it would save me a lot of time cleaning my schemas.

Thanks,

Rapha?l


author: Grzegorz Lewandowski
body: Unfortunately, it's not that simple, mostly because of plugins. Technically, you can list Fisheye\&Crucible tables by looking at sql create scripts to get list of Fisheye tables (they are mostly prefixed with *cru*)

But there's a library called ActiveObjects which is used in plugins to provide database access and unfortunately there's no easy way to determine which tables belong to Fisheye\&Crucible and which ones to JIRA.


author: RMA
body: Ok, I have no time to do such hasardous digging, so unfortunately it will stay like that.

Now that databases are isolated, I have been able to upgrade to Jira 7.0.11 / Fisheye 4.0.4 quite easily.

So my problem is solved, thank you.

I will have to keep those versions for a while as I noticed after upgrading to Jira 7.8 that Mysql 5.1 is not supported any more after version 7.2. So I will have to upgrade the database first, meaning the whole OS in my case.