package updates import ( "github.com/go-gormigrate/gormigrate/v2" "gorm.io/gorm" ) var apiTokenMigrations = []*gormigrate.Migration{ { ID: "202610040001_create_user_api_tokens", Migrate: func(tx *gorm.DB) error { return tx.Exec(`CREATE TABLE user_api_tokens ( id BIGSERIAL PRIMARY KEY, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, name VARCHAR(255) NULL, token_hash VARCHAR(64) NOT NULL UNIQUE, scopes TEXT NULL, collection_ids TEXT NULL, expires_at TIMESTAMPTZ NULL, revoked_at TIMESTAMPTZ NULL, last_used_at TIMESTAMPTZ NULL, last_used_ip VARCHAR(64) NULL, oauth_client_id TEXT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX user_api_tokens_user_id_index ON user_api_tokens (user_id); CREATE INDEX user_api_tokens_oauth_client_id_index ON user_api_tokens (oauth_client_id)`).Error }, Rollback: func(tx *gorm.DB) error { return tx.Exec("DROP TABLE IF EXISTS user_api_tokens").Error }, }, } func init() { Register(apiTokenMigrations...) }