70 lines
2.9 KiB
Go
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...)
|
|
}
|