Files

75 lines
2.3 KiB
Markdown

# WHMCS module upgrades
Upgrade paths for `integrations/whmcs` server and addon modules alongside GameCloud API releases.
## Version compatibility
Check release notes for minimum pairs:
| GameCloud API | Server module | Addon module |
|---------------|---------------|--------------|
| 1.0.x | 1.0.x | 1.0.x |
| 1.1.x | 1.1.x | 1.1.0+ (SQL migrations) |
Module metadata declares `APIVersion` in `hexagamecloud_MetaData()`.
## Upgrade order
1. **GameCloud API** — deploy new control plane ([upgrades](../../operations/upgrades.md))
2. **Database migrations** — addon SQL in `modules/addons/hexagamecloud/sql/upgrade-*.sql`
3. **WHMCS addon module** — copy files, run upgrade hook
4. **WHMCS server module** — copy files (usually no DB change)
5. **Verify** — dashboard health, test suspend/unsuspend
Never upgrade WHMCS modules before the API when release notes specify API-first ordering.
## Addon SQL migrations
WHMCS runs `hexagamecloud_upgrade()` on version bump. Manual apply if needed:
```bash
mysql whmcs < integrations/whmcs/modules/addons/hexagamecloud/sql/upgrade-1.1.0.sql
```
Back up WHMCS database before upgrade.
## File deployment
```bash
# From packaging script output or git
cp -r integrations/whmcs/modules/addons/hexagamecloud /path/to/whmcs/modules/addons/
cp -r integrations/whmcs/modules/servers/hexagamecloud /path/to/whmcs/modules/servers/
cp integrations/whmcs/hooks/hexagamecloud.php /path/to/whmcs/includes/hooks/
```
Clear WHMCS template cache if admin UI looks stale.
## Zero-downtime considerations
- Running game servers unaffected by module file update
- Brief API restart during GameCloud upgrade may delay WHMCS module calls — retry logic in `ApiClient.php` handles transient 502
- Place WHMCS in maintenance mode only if API breaking change requires it
## Rollback
1. Restore previous module files from backup
2. Roll back GameCloud images if API incompatible
3. Restore WHMCS DB if SQL migration ran
Product mappings table is forward-compatible unless release notes say otherwise.
## Packaging
```bash
cd integrations/whmcs/packaging
./build-package.sh
```
Distribute ZIP to production WHMCS via change-controlled deploy.
## Related
- [Installation](installation.md)
- [Troubleshooting](troubleshooting.md)
- [Control plane upgrades](../../operations/upgrades.md)