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

125 lines
2.7 KiB
Markdown

# 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:
```bash
# 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**
```bash
copy acc.db acc_backup.db
copy .env .env.backup
```
2. **Stop the application**
```bash
# If running as service
nssm stop "ACC Server Manager"
```
3. **Update the code**
```bash
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**
```bash
./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
# 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**