Upgrading a large Invision Community from v4 to v5 is not linear work. In this DirectAdmin scenario, the documented path required practical contingencies to deliver a safe and testable rollout.
1) Storage challenge: 350 GB without duplication
Observed footprint:
- application core: < 1 GB
- media (uploads/photos): ~310 GB
- database: tens of GB
To avoid expensive media duplication:
- used
rsyncfor essential code/config structure. - used
symlinksfrom staging to existing media storage.
Outcome: full staging usability with minimal extra storage.
2) Isolation via hosts and -TESTINSTALL limitation
While -TESTINSTALL is the recommended licensing pattern, it was not sufficient in this specific environment.
Applied workaround:
- replicate stack to a separate server.
- force local hostname resolution through
hostsfile.
This enabled realistic validation without public DNS cutover conflicts.
3) Database integrity through CLI
For large datasets, web import is fragile. Import was done via shell:
pv backup_producao.sql | mysql -u user_staging -p banco_staging
pv provided real-time throughput and progress visibility.
4) Hands-on upgrade when CLI path fails
Recommended CLI upgrader did not behave reliably in this environment.
Contingency strategy:
- execute upgrade from browser with strict supervision.
- monitor MySQL
processlistcontinuously. - run heavy/blocked SQL operations manually when needed.
This kept large-table transitions under control.
5) Permissions, HTTP 500, and runtime tuning
Classic DirectAdmin staging issue: 500 Access Denied.
In IC5, critical files and directories must match PHP-FPM runtime user/group (for example site1:site1). Incorrect ownership caused startup failures.
Additional tuning:
- centralized runtime directives to avoid
.user.ini/.php.iniconflicts. - fixed invalid
session.save_path. - increased
memory_limitandmax_post_sizefor heavy migration phases.
Operational success checklist
- [x] Isolated staging on separate server with
hostsrouting. - [x] Selective sync using
rsync+ mediasymlinks. - [x] CLI database import with
pvvisibility. - [x] Active SQL/process monitoring during upgrade.
- [x] Ownership/permission hardening for PHP-FPM runtime user.
Large IC v4 to v5 upgrades require adaptability when official automation paths break. Controlled execution, observability, and strict staging isolation turn a risky migration into a predictable technical delivery.
This post is licensed under CC BY-NC.
Comments
Join the discussion below.
Comments are not configured yet. Add Cusdis settings in /assets/json/config/blog-comments-config.json.