Merge pull request #3232 from jianjianai/fix1/account-expiry-autopause-index

fix:account expiry autopause index / 账号过期自动禁用索引优化
This commit is contained in:
Wesley Liddick
2026-06-16 11:12:57 +08:00
committed by GitHub
3 changed files with 20 additions and 0 deletions
@@ -32,6 +32,7 @@ func TestMigrationsRunner_IsIdempotent_AndSchemaIsUpToDate(t *testing.T) {
requireColumn(t, tx, "accounts", "rate_limit_reset_at", "timestamp with time zone", 0, true)
requireColumn(t, tx, "accounts", "overload_until", "timestamp with time zone", 0, true)
requireColumn(t, tx, "accounts", "session_window_status", "character varying", 20, true)
requireIndex(t, tx, "accounts", "idx_accounts_autopause_expiry_due")
// api_keys: key length should be 128
requireColumn(t, tx, "api_keys", "key", "character varying", 128, false)
@@ -0,0 +1,6 @@
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_accounts_autopause_expiry_due
ON accounts (expires_at)
WHERE deleted_at IS NULL
AND schedulable = TRUE
AND auto_pause_on_expired = TRUE
AND expires_at IS NOT NULL;
@@ -155,3 +155,16 @@ func TestMigration135AllowsGitHubAndGoogleAuthProviders(t *testing.T) {
require.Contains(t, sql, "'github'")
require.Contains(t, sql, "'google'")
}
func TestMigration151AddsAccountAutoPauseExpiryPartialIndex(t *testing.T) {
content, err := FS.ReadFile("151_account_autopause_expiry_index_notx.sql")
require.NoError(t, err)
sql := string(content)
require.Contains(t, sql, "CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_accounts_autopause_expiry_due")
require.Contains(t, sql, "ON accounts (expires_at)")
require.Contains(t, sql, "WHERE deleted_at IS NULL")
require.Contains(t, sql, "schedulable = TRUE")
require.Contains(t, sql, "auto_pause_on_expired = TRUE")
require.Contains(t, sql, "expires_at IS NOT NULL")
}