| 12345678910111213141516171819202122232425262728293031 |
- -- 迁移文件: 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;
|