001_cleanup_old_tables.sql 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. -- ============================================================
  2. -- 清理旧表结构,统一使用新表
  3. -- 执行时间: 2026-02-12
  4. -- ============================================================
  5. -- 1. 删除旧的 sys_* 表(保留数据到新表后再删除)
  6. -- 注意:按照外键依赖顺序删除
  7. -- 1.1 删除关联表
  8. DROP TABLE IF EXISTS sys_role_permissions CASCADE;
  9. DROP TABLE IF EXISTS sys_user_roles CASCADE;
  10. -- 1.2 删除权限和角色表
  11. DROP TABLE IF EXISTS sys_permissions CASCADE;
  12. DROP TABLE IF EXISTS sys_roles CASCADE;
  13. -- 1.3 删除会话和日志表
  14. DROP TABLE IF EXISTS sys_sessions CASCADE;
  15. DROP TABLE IF EXISTS sys_login_logs CASCADE;
  16. DROP TABLE IF EXISTS sys_operation_logs CASCADE;
  17. -- 1.4 删除系统配置表
  18. DROP TABLE IF EXISTS sys_configs CASCADE;
  19. DROP TABLE IF EXISTS sys_dict_items CASCADE;
  20. DROP TABLE IF EXISTS sys_dict_types CASCADE;
  21. DROP TABLE IF EXISTS sys_files CASCADE;
  22. DROP TABLE IF EXISTS sys_tasks CASCADE;
  23. -- 1.5 删除旧用户表
  24. DROP TABLE IF EXISTS sys_users CASCADE;
  25. -- 2. 确保新表 users 有完整的管理员数据
  26. INSERT INTO users (
  27. id,
  28. username,
  29. email,
  30. password_hash,
  31. display_name,
  32. role,
  33. is_active
  34. ) VALUES (
  35. '1',
  36. 'admin',
  37. 'admin@lingyue.com',
  38. '$2a$10$0AUCG2mG7a6JXErOTI.Pg.Q/R04plOXvc.TDMeWzwwZQ23ZmrtJxC',
  39. '管理员',
  40. 'admin',
  41. true
  42. ) ON CONFLICT (username) DO UPDATE SET
  43. password_hash = EXCLUDED.password_hash,
  44. email = EXCLUDED.email,
  45. display_name = EXCLUDED.display_name,
  46. role = EXCLUDED.role;
  47. -- 3. 验证清理结果
  48. SELECT 'Cleanup completed. Remaining sys_* tables:' as message;
  49. SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename LIKE 'sys_%';
  50. SELECT 'Users table data:' as message;
  51. SELECT id, username, email, display_name, role, is_active FROM users;