Smail/backend/db/migration/notification_grant.go
smail fcbcf91d66
Some checks are pending
Security Checks / security (push) Waiting to run
检查点:保留账号分组隔离实现,继续权限复审
2026-09-25 21:46:42 +08:00

25 lines
921 B
Go

package migration
func notificationGrantStatements() map[Dialect][]string {
// 不依赖自增、布尔或日期方言;计数窗口统一使用 UTC 字符串。
statement := `CREATE TABLE IF NOT EXISTS notification_grant (
user_id BIGINT NOT NULL PRIMARY KEY,
enabled INTEGER NOT NULL DEFAULT 0,
code_version INTEGER NOT NULL DEFAULT 1,
code_hash VARCHAR(64) NOT NULL DEFAULT '',
session_version INTEGER NOT NULL DEFAULT 0,
security_version INTEGER NOT NULL DEFAULT 0,
minute_limit INTEGER NOT NULL DEFAULT 10,
day_limit INTEGER NOT NULL DEFAULT 100,
minute_key VARCHAR(16) NOT NULL DEFAULT '',
minute_count INTEGER NOT NULL DEFAULT 0,
day_key VARCHAR(10) NOT NULL DEFAULT '',
day_count INTEGER NOT NULL DEFAULT 0
)`
return map[Dialect][]string{
DialectSQLite: {statement},
DialectMySQL: {statement + " ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"},
DialectPostgres: {statement},
}
}