Senior
Vertel over database-migraties: hoe hebben jullie ze uitgevoerd, hoe gingen jullie om met fouten tijdens de migratie?
sobes.tech AI
Antwoord van AI
Ik voerde meestal database-migraties uit met behulp van tools zoals Goose of Flyway, die het beheer van schema-versies mogelijk maken en wijzigingen sequentieel toepassen.
Migratieproces:
- Maakte migratiescripts met schemawijzigingen (tabellen maken, kolommen aanpassen, enzovoort).
- Testte de migraties in een testomgeving.
- Voerde de migraties uit op staging, en controleerde de correctheid.
- Voerde de migratie uit in productie met minimale downtime.
Foutafhandeling:
- Gebruikte transacties in migraties om wijzigingen terug te draaien bij fouten.
- Logde fouten en informeerde het team.
- Bij kritieke fouten, rolde ik de migratie terug en analyseerde ik het probleem.
- In complexe gevallen schreef ik scripts voor handmatige datacorrecties.
Voorbeeld van migratie van Goose naar Go:
package main
import (
"database/sql"
"github.com/pressly/goose/v3"
)
func Up(tx *sql.Tx) error {
_, err := tx.Exec(`ALTER TABLE users ADD COLUMN age INT;`)
return err
}
func Down(tx *sql.Tx) error {
_, err := tx.Exec(`ALTER TABLE users DROP COLUMN age;`)
return err
}
Deze aanpak biedt versiecontrole en veiligheid bij wijzigingen.