Database migration guide.
Note
If AUTO_MIGRATE=false in your configuration, you'll need to manually run migrations. By default, AUTO_MIGRATE=true in development mode.
make migrate-up # Run pending migrations
make migrate-status # Show status
make migrate-down # Rollback last migrationOr use the binary:
go run cmd/migrate/main.go -action=up
go run cmd/migrate/main.go -action=down -steps=3- Create file in
versions/:YYYYMMDD_XXXXXX_description.go
package versions
import (
"interface-api/internal/database/models"
"gorm.io/gorm"
)
type Migration20240212_000002 struct{}
func (m Migration20260212_000002) Version() string {
return "20240212_000002"
}
func (m Migration20260212_000002) Name() string {
return "add_profile_table"
}
func (m Migration20260212_000002) Up(db *gorm.DB) error {
return db.AutoMigrate(&models.Profile{})
}
func (m Migration20260212_000002) Down(db *gorm.DB) error {
return db.Migrator().DropTable(&models.Profile{})
}- Register in
migrations.go:
func GetAllMigrations() []migrator.Script {
return []migrator.Script{
versions.Migration20260212_000001{},
versions.Migration20260212_000002{},
}
}