Upgrading to Confluence 5.9.x or higher version fails with error 'failed during the SCHEMA_UPGRADE phase due to: null'
Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.
Upgrading to Confluence to 5.9.x and above fails with the following error message:
INFO [localhost-startStop-1] [confluence.upgrade.upgradetask.DropSpaceGroupTablesUpgradeTask] doUpgrade Starting dropping unused column SPACES.SPACEGROUPID, table SPACEGROUPPERMISSIONS, and table SPACEGROUPS ERROR [localhost-startStop-1] [atlassian.confluence.plugin.PluginFrameworkContextListener] launchUpgrades Upgrade failed, application will not start: Upgrade task com.atlassian.confluence.upgrade.upgradetask.DropSpaceGroupTablesUpgradeTask@535b5afa failed during the SCHEMA_UPGRADE phase due to: null com.atlassian.confluence.upgrade.UpgradeException: Upgrade task com.atlassian.confluence.upgrade.upgradetask.DropSpaceGroupTablesUpgradeTask@535b5afa failed during the SCHEMA_UPGRADE phase due to: null
Take the following steps to confirm if you are being affected by this issue:
While on Confluence 5.8.x or older, run this SQL query in MySQL to show the structure for the SPACES table:
show create table spaces;
- If FK9228242D16994414 is not present in the table constraints, you are affected by this issue.
There is a missing foreign key constraint in the table
SPACES that refers to the
SPACEGROUPS table. Confluence 5.9.x no longer includes the table
SPACEGROUPS, which should be dropped, but when the upgrade task that performs this is run, it fails due to the missing foreign key constraint.
This upgrade task contains a specific list of activities to perform in sequence:
- drop the foreign key SPACEGROUPID from SPACES
- drop the index s_spacegroupid_idx from SPACES
- drop the column SPACES.SPACEGROUPID
- drop the table SPACEGROUPPERMISSIONS
- drop the table SPACEGROUPS
Run this SQL command to recreate the constraint on the table Spaces:
ALTER TABLE `SPACES` ADD CONSTRAINT `FK9228242D16994414` FOREIGN KEY (`SPACEGROUPID`) REFERENCES `SPACEGROUPS` (`SPACEGROUPID`);
Verify the SPACES table includes the new constraint
show create table spaces;
For Oracle database you need to run this:
add constraint to SPACES table:
ALTER TABLE SPACES ADD CONSTRAINT FK9228242D16994414 FOREIGN KEY (SPACEGROUPID) REFERENCES SPACEGROUPS (SPACEGROUPID);
- check if the constraint was applied:
select * from user_cons_columns where table_name='SPACES' and constraint_name='FK9228242D16994414';
Alwaysyour data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.