-- 迁移文件: 010_add_auth_fields_to_users.sql -- 描述: 为用户表添加认证相关字段 -- 需求: 1.1, 1.2, 1.3 -- ============================================ -- 正向迁移: 添加认证字段和约束 -- ============================================ -- 添加username字段(用户名,用于登录) ALTER TABLE aigcspace.users ADD COLUMN IF NOT EXISTS username VARCHAR(50); -- 添加password_hash字段(密码哈希) ALTER TABLE aigcspace.users ADD COLUMN IF NOT EXISTS password_hash VARCHAR(255); -- 为username添加唯一约束 ALTER TABLE aigcspace.users ADD CONSTRAINT uk_users_username UNIQUE (username); -- 为email添加唯一约束(当email不为空时) CREATE UNIQUE INDEX IF NOT EXISTS idx_users_email_unique ON aigcspace.users(email) WHERE email IS NOT NULL; -- 添加字段注释 COMMENT ON COLUMN aigcspace.users.username IS '用户名(唯一,用于登录)'; COMMENT ON COLUMN aigcspace.users.password_hash IS '密码哈希(bcrypt加密)'; -- ============================================ -- 回滚迁移: 删除字段和约束 -- ============================================ -- DROP INDEX IF EXISTS aigcspace.idx_users_email_unique; -- ALTER TABLE aigcspace.users DROP CONSTRAINT IF EXISTS uk_users_username; -- ALTER TABLE aigcspace.users DROP COLUMN IF EXISTS password_hash; -- ALTER TABLE aigcspace.users DROP COLUMN IF EXISTS username;