-- ============================================ -- 迁移: 004_add_refresh_tokens.sql -- 目的: 添加 refresh_tokens 表支持双 Token 机制 -- 日期: 2026-04-18 -- 依赖: 无(users 表已在 001 创建) -- 说明: 用于存储 refresh_token,支持 access_token 过期后自动续期 -- ============================================ -- 迁移: 添加 refresh_tokens 表 -- 用于支持 access_token 刷新机制 CREATE TABLE IF NOT EXISTS refresh_tokens ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, token VARCHAR(512) NOT NULL, expires_at TIMESTAMPTZ NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); -- 索引:加速 token 查询和用户清理 CREATE INDEX IF NOT EXISTS idx_refresh_tokens_token ON refresh_tokens(token); CREATE INDEX IF NOT EXISTS idx_refresh_tokens_user_id ON refresh_tokens(user_id); CREATE INDEX IF NOT EXISTS idx_refresh_tokens_expires_at ON refresh_tokens(expires_at); COMMENT ON TABLE refresh_tokens IS 'Refresh token 存储表,支持 access_token 续期'; COMMENT ON COLUMN refresh_tokens.token IS 'Refresh token 字符串'; COMMENT ON COLUMN refresh_tokens.expires_at IS '过期时间';