I'm troubleshooting a XenForo installation where the upgrade to XF 2.3.8 was interrupted during the database schema migration (around February).
Specifically:
Current state
- The xf_upgrade version is already recorded as 2030871, so running php cmd.php xf:upgrade reports that the installation is already up to date and does not execute any remaining schema migrations.
- However, the database schema is still in a pre-2.3 state. For example:
- xf_widget is missing the position_overrides column required by XF 2.3.
- The interrupted upgrade also left duplicate/conflict tables, including:
- xf_widget__conflict
- xf_widget_1499079760
- xf_session_install__conflict
Current behaviour
- CLI commands work normally through cmd.php.
- Every web request returns an HTTP 200 with a blank page.
- The application appears to fail during rendering because the expected database schema does not match the actual schema.
- Attempts to rebuild data fail with:
"You may not delete the default item."
Constraints
- There is no usable backup to restore.
- Preserving the existing forum data is critical.
Question
What is the safest supported way to force XenForo 2.3.8 to re-run its database schema migrations over the existing data?Specifically:
- Can the recorded upgrade state/version be safely reset so the installer re-applies all pending migrations?
- Is there an official recovery procedure for an upgrade that completed the version stamp but failed partway through the schema changes?
- How can this be done without risking data loss or requiring a fresh installation?