package updates import ( "github.com/go-gormigrate/gormigrate/v2" "gorm.io/gorm" ) var extendUsersMigrations = []*gormigrate.Migration{ { ID: "202609220005_extend_users", Migrate: func(tx *gorm.DB) error { return execStmts(tx, []string{ `ALTER TABLE users ADD COLUMN name TEXT`, `ALTER TABLE users ADD COLUMN surname TEXT`, `ALTER TABLE users ADD COLUMN is_activated BOOLEAN NOT NULL DEFAULT FALSE`, `ALTER TABLE users ADD COLUMN activated_at TIMESTAMPTZ`, `ALTER TABLE users ADD COLUMN activation_code TEXT`, `ALTER TABLE users ADD COLUMN activation_code_issued_at TIMESTAMPTZ`, `ALTER TABLE users ADD COLUMN reset_password_code TEXT`, `ALTER TABLE users ADD COLUMN reset_password_code_issued_at TIMESTAMPTZ`, `ALTER TABLE users ADD COLUMN has_self_set_password BOOLEAN NOT NULL DEFAULT TRUE`, `ALTER TABLE users ADD COLUMN marketing_consent BOOLEAN NOT NULL DEFAULT FALSE`, `ALTER TABLE users ADD COLUMN is_onboarded BOOLEAN NOT NULL DEFAULT FALSE`, `ALTER TABLE users ADD COLUMN organisation_id INTEGER REFERENCES golem15_user_organisations(id)`, `ALTER TABLE users ADD COLUMN organisation_role TEXT`, `ALTER TABLE users ADD COLUMN preferred_locale TEXT`, `ALTER TABLE users ADD COLUMN tokens_valid_after TIMESTAMPTZ`, `ALTER TABLE users ADD COLUMN created_ip_address TEXT`, `ALTER TABLE users ADD COLUMN last_ip_address TEXT`, `ALTER TABLE users ADD COLUMN deleted_at TIMESTAMPTZ`, }) }, Rollback: func(tx *gorm.DB) error { return execStmts(tx, []string{ `ALTER TABLE users DROP COLUMN IF EXISTS deleted_at`, `ALTER TABLE users DROP COLUMN IF EXISTS last_ip_address`, `ALTER TABLE users DROP COLUMN IF EXISTS created_ip_address`, `ALTER TABLE users DROP COLUMN IF EXISTS tokens_valid_after`, `ALTER TABLE users DROP COLUMN IF EXISTS preferred_locale`, `ALTER TABLE users DROP COLUMN IF EXISTS organisation_role`, `ALTER TABLE users DROP COLUMN IF EXISTS organisation_id`, `ALTER TABLE users DROP COLUMN IF EXISTS is_onboarded`, `ALTER TABLE users DROP COLUMN IF EXISTS marketing_consent`, `ALTER TABLE users DROP COLUMN IF EXISTS has_self_set_password`, `ALTER TABLE users DROP COLUMN IF EXISTS reset_password_code_issued_at`, `ALTER TABLE users DROP COLUMN IF EXISTS reset_password_code`, `ALTER TABLE users DROP COLUMN IF EXISTS activation_code_issued_at`, `ALTER TABLE users DROP COLUMN IF EXISTS activation_code`, `ALTER TABLE users DROP COLUMN IF EXISTS activated_at`, `ALTER TABLE users DROP COLUMN IF EXISTS is_activated`, `ALTER TABLE users DROP COLUMN IF EXISTS surname`, `ALTER TABLE users DROP COLUMN IF EXISTS name`, }) }, }, } func execStmts(tx *gorm.DB, stmts []string) error { for _, stmt := range stmts { if err := tx.Exec(stmt).Error; err != nil { return err } } return nil } func init() { Register(extendUsersMigrations...) }