Files
acc-server-manager/docs/MIGRATION.md
Fran Jurmanović 90aa63fc99 update docs
2025-07-29 20:50:57 +02:00

2.7 KiB

Migration Guide

This guide covers database migrations and version upgrades for ACC Server Manager.

Database Migrations

The application handles database migrations automatically on startup. No manual intervention is required for most upgrades.

Automatic Migrations

When you start the application:

  1. It checks the current database schema
  2. Applies any pending migrations
  3. Updates the schema version

Manual Migration (if needed)

If automatic migration fails:

# Backup your database first
copy acc.db acc_backup.db

# Delete the database and let it recreate
del acc.db

# Start the application - it will create a fresh database
./api.exe

Upgrading ACC Server Manager

From v1.x to v2.x

  1. Backup your data

    copy acc.db acc_backup.db
    copy .env .env.backup
    
  2. Stop the application

    # If running as service
    nssm stop "ACC Server Manager"
    
  3. Update the code

    git pull
    go build -o api.exe cmd/api/main.go
    
  4. Update configuration

    • Check .env.example for new required variables
    • Run .\scripts\generate-secrets.ps1 if needed
  5. Start the application

    ./api.exe
    # Or restart service
    nssm start "ACC Server Manager"
    

Breaking Changes

v2.0

  • Changed from system_configs table to environment variables
  • Now use STEAMCMD_PATH and NSSM_PATH environment variables
  • UUID fields added to all tables (automatic migration)

v1.5

  • Authentication system overhaul
  • New permission system
  • Password requirements enforced

Data Backup

Regular Backups

Create a scheduled task to backup your database:

# PowerShell backup script
$date = Get-Date -Format "yyyy-MM-dd"
Copy-Item "acc.db" "backups\acc_$date.db"

What to Backup

  • acc.db - Main database
  • .env - Configuration and secrets
  • logs/ - Application logs (optional)
  • Server configuration files in each server directory

Rollback Procedure

If an upgrade fails:

  1. Stop the application
  2. Restore the database: copy acc_backup.db acc.db
  3. Restore the configuration: copy .env.backup .env
  4. Use the previous binary version
  5. Start the application

Common Migration Issues

"Database locked"

  • Stop all instances of the application
  • Check for stuck processes

"Schema version mismatch"

  • Let automatic migration complete
  • Don't interrupt during migration

"Missing columns"

  • Database migration was interrupted
  • Restore from backup and retry

Best Practices

  1. Always backup before upgrading
  2. Test upgrades in a non-production environment first
  3. Read release notes for breaking changes
  4. Keep the last working version's binary
  5. Monitor logs during first startup after upgrade