{% include 'admin/partials/header.html' %}{% include 'admin/partials/sidebar.html' %}

Upgrade Center

Upload, validate, apply, and verify NexusForum release packages and database migrations.

Files {{ $app['version'] }}
{% if $pendingMigrations %}
Database upgrade required

{{ count($pendingMigrations) }} migration{{ count($pendingMigrations)===1?'':'s' }} must be applied before all features are available.

{% else %}
Database is up to date

Installed schema: {{ $installedVersion }}

Verified
{% endif %}

Migration status

{{ count($migrations) }} registered
{% foreach $migrations as $migration %}
{{ $migration['status'] }}
{{ $migration['migration'] }}{{ $migration['description'] }}{% if $migration['error_message'] %}{{ $migration['error_message'] }}{% endif %}
{{ $migration['version'] }}
{% endforeach %}

Feature checks

Attachment readiness
{% foreach $healthChecks as $check %}
{{ $check['label'] }}{{ $check['detail'] }}{{ $check['ok']?'Passed':'Needs attention' }}
{% endforeach %}

Stage upgrade package

ZIP manifest validation

Before upgrading

1. Create a database backup or synchronize the standby database.

2. Keep config/database.local.php, uploads, plugins, and storage data.

3. Run database migrations after replacing release files.

4. Verify feature checks before leaving maintenance mode.

{% if $stagedPackages %}

Staged upgrade packages

Ready to apply
{% foreach $stagedPackages as $package %}
{{ $package['status'] ?? 'staged' }}
{{ $package['package_name'] }}{{ $package['original_name'] }} · uploaded {{ $package['uploaded_at'] }}{{ count($package['files']) }} file{{ count($package['files'])===1?'':'s' }} · target {{ $package['to_version'] }}{% foreach $package['notes'] as $note %}{{ $note }}{% endforeach %}
{% if ($package['status'] ?? 'staged')!=='completed' %}
{% else %}Applied{% endif %}
{% endforeach %}
{% endif %}

Upgrade History

VersionStatusDateDetails
{% foreach $history as $item %}
{{ $item['from_version'] }} → {{ $item['to_version'] }}{{ $item['status'] }}{{ $item['created_at'] }}{{ $item['details'] }}
{% endforeach %}
{% include 'admin/partials/footer.html' %}