Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 1.26 KB

File metadata and controls

63 lines (46 loc) · 1.26 KB

Migrations

Database migration guide.

Usage

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 migration

Or use the binary:

go run cmd/migrate/main.go -action=up
go run cmd/migrate/main.go -action=down -steps=3

Creating Migrations

  1. 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{})
}
  1. Register in migrations.go:
func GetAllMigrations() []migrator.Script {
  return []migrator.Script{
  versions.Migration20260212_000001{},
  versions.Migration20260212_000002{},
  }
}