Cannot Upgrade Confluence on Oracle if the Database is Shared

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.

Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Symptoms

Upgrading Confluence fails with one of the below exceptions -

2008-12-29 08:20:18,257 ERROR [Thread-1] [hibernate.tool.hbm2ddl.SchemaUpdate] execute Unsuccessful: alter table <example table name> add <example column name> number(19,0)
2008-12-29 08:20:18,257 ERROR [Thread-1] [hibernate.tool.hbm2ddl.SchemaUpdate] execute ORA-01430: column being added already exists in table
2008-12-29 08:20:18,257 ERROR [Thread-1] [hibernate.tool.hbm2ddl.SchemaUpdate] execute could not complete schema update
java.sql.SQLException: ORA-01430: column being added already exists in table
2008-12-29 08:20:18,257 ERROR [Thread-1] [hibernate.tool.hbm2ddl.SchemaUpdate] execute Unsuccessful: alter table <example table name> add <example column name> number(19,0)
2008-12-29 08:20:18,257 ERROR [Thread-1] [hibernate.tool.hbm2ddl.SchemaUpdate] execute ORA-01430: column being added already exists in table
2008-12-29 08:20:18,257 ERROR [Thread-1] [hibernate.tool.hbm2ddl.SchemaUpdate] execute could not complete schema update
java.sql.SQLException: ORA-01430: column being added already exists in table

Cause

A table with the same name exists in both Confluence and another applications database schemas, Confluence only picks up the first table found.

The root cause is due to this Hibernate bug.

Resolution

Ensure that Confluence schema only has permissions to objects in its own schema, like revoking 'select any table' and 'dba' permissions. Confluence must have the permissions described in Database Setup for Oracle, and no more. Ensure you follow the entirety of Step 3 in that document to fix the database permissions, including creating the local 'all_objects' view to ensure that the user cannot see objects from other databases.

There are several other approaches to fixing this issue, as documented in CONF-3613 - however fixing the permissions as above is the recommended way to resolve this issue.

Last modified on Dec 18, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.