20251121_create_connections_split.sql 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. -- 创建基础连接表
  2. CREATE TABLE IF NOT EXISTS connections (
  3. id TEXT PRIMARY KEY,
  4. group_id TEXT NOT NULL,
  5. name TEXT NOT NULL,
  6. description TEXT,
  7. kind TEXT NOT NULL,
  8. color TEXT,
  9. auto_connect INTEGER DEFAULT 0,
  10. display_order INTEGER DEFAULT 0,
  11. created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  12. updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
  13. );
  14. CREATE INDEX IF NOT EXISTS idx_connections_group_id ON connections(group_id);
  15. -- 数据库连接特有信息
  16. CREATE TABLE IF NOT EXISTS db_connections (
  17. connection_id TEXT PRIMARY KEY REFERENCES connections(id) ON DELETE CASCADE,
  18. type TEXT NOT NULL,
  19. version TEXT,
  20. server TEXT,
  21. port INTEGER,
  22. username TEXT,
  23. password TEXT,
  24. database_name TEXT,
  25. connection_string TEXT,
  26. use_ssh_tunnel INTEGER DEFAULT 0,
  27. ssh_tunnel_connection_id TEXT,
  28. last_connected DATETIME
  29. );
  30. CREATE INDEX IF NOT EXISTS idx_db_connections_server ON db_connections(server);
  31. -- 服务器/主机类连接特有信息
  32. CREATE TABLE IF NOT EXISTS server_connections (
  33. connection_id TEXT PRIMARY KEY REFERENCES connections(id) ON DELETE CASCADE,
  34. type TEXT NOT NULL,
  35. version TEXT,
  36. server TEXT,
  37. port INTEGER,
  38. username TEXT,
  39. auth_type TEXT,
  40. private_key TEXT,
  41. use_sudo INTEGER DEFAULT 0
  42. );
  43. CREATE INDEX IF NOT EXISTS idx_server_connections_server ON server_connections(server);
  44. -- 连接间关联/层级关系表
  45. CREATE TABLE IF NOT EXISTS connection_links (
  46. id TEXT PRIMARY KEY,
  47. parent_connection_id TEXT NOT NULL REFERENCES connections(id) ON DELETE CASCADE,
  48. child_connection_id TEXT NOT NULL REFERENCES connections(id) ON DELETE CASCADE,
  49. relation_type TEXT,
  50. created_at DATETIME DEFAULT CURRENT_TIMESTAMP
  51. );
  52. CREATE INDEX IF NOT EXISTS idx_connection_links_parent ON connection_links(parent_connection_id);
  53. CREATE INDEX IF NOT EXISTS idx_connection_links_child ON connection_links(child_connection_id);