Files
sm-user-plugin/updates/202609220005_extend_users.go
2026-09-22 14:03:31 +02:00

70 lines
2.9 KiB
Go

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...)
}