000003_schema_update.up.sql 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. -- 000003_schema_update.up.sql
  2. -- 1. Create missing tables
  3. CREATE TABLE IF NOT EXISTS sys_roles (
  4. id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  5. name VARCHAR(50),
  6. role_key VARCHAR(50) UNIQUE,
  7. data_scope VARCHAR(20),
  8. menu_check_strictly BOOLEAN DEFAULT TRUE,
  9. status VARCHAR(1)
  10. );
  11. CREATE TABLE IF NOT EXISTS sys_user_roles (
  12. user_id UUID NOT NULL,
  13. role_id UUID NOT NULL,
  14. PRIMARY KEY (user_id, role_id)
  15. );
  16. CREATE TABLE IF NOT EXISTS sys_configs (
  17. config_id SERIAL PRIMARY KEY,
  18. config_key VARCHAR(100) UNIQUE,
  19. config_value TEXT,
  20. config_type VARCHAR(10),
  21. remark VARCHAR(500)
  22. );
  23. CREATE TABLE IF NOT EXISTS sys_menus (
  24. id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  25. parent_id UUID,
  26. name VARCHAR(50),
  27. path VARCHAR(200),
  28. component VARCHAR(255),
  29. perms VARCHAR(100),
  30. icon VARCHAR(100),
  31. type VARCHAR(1),
  32. order_num INTEGER,
  33. visible VARCHAR(1) DEFAULT '0',
  34. status VARCHAR(1) DEFAULT '0'
  35. );
  36. CREATE TABLE IF NOT EXISTS sys_role_menus (
  37. role_id UUID NOT NULL,
  38. menu_id UUID NOT NULL,
  39. PRIMARY KEY (role_id, menu_id)
  40. );
  41. CREATE TABLE IF NOT EXISTS equipment_cleaning_formula_templates (
  42. id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  43. name VARCHAR(100) NOT NULL,
  44. equipment_type VARCHAR(100) NOT NULL,
  45. formula JSONB,
  46. description TEXT,
  47. created_at BIGINT,
  48. updated_at BIGINT
  49. );
  50. CREATE TABLE IF NOT EXISTS backup_logs (
  51. id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  52. file_name VARCHAR(255),
  53. file_path VARCHAR(500),
  54. size BIGINT,
  55. status VARCHAR(20),
  56. message TEXT,
  57. start_time TIMESTAMP,
  58. end_time TIMESTAMP,
  59. upload_status VARCHAR(20)
  60. );
  61. CREATE TABLE IF NOT EXISTS alarm_rule_bindings (
  62. rule_id UUID NOT NULL,
  63. target_id UUID NOT NULL,
  64. target_type VARCHAR(20),
  65. PRIMARY KEY (rule_id, target_id)
  66. );
  67. CREATE TABLE IF NOT EXISTS ai_analysis_reports (
  68. id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  69. report_type VARCHAR(50),
  70. title VARCHAR(200),
  71. content TEXT,
  72. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  73. status VARCHAR(20),
  74. alert_count INTEGER
  75. );
  76. -- 2. Update existing tables (Users table in 000001 missed some fields)
  77. ALTER TABLE users ADD COLUMN IF NOT EXISTS email VARCHAR(100) UNIQUE;
  78. ALTER TABLE users ADD COLUMN IF NOT EXISTS phone_number VARCHAR(20) UNIQUE;
  79. ALTER TABLE users ADD COLUMN IF NOT EXISTS status VARCHAR(1);
  80. ALTER TABLE users ADD COLUMN IF NOT EXISTS created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
  81. -- 3. Add Indexes
  82. CREATE INDEX IF NOT EXISTS idx_sys_menus_parent_id ON sys_menus(parent_id);
  83. CREATE INDEX IF NOT EXISTS idx_sys_user_roles_user_id ON sys_user_roles(user_id);
  84. CREATE INDEX IF NOT EXISTS idx_sys_role_menus_role_id ON sys_role_menus(role_id);