20250922150745_init.up.sql 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. CREATE TABLE workspaces (
  2. id INTEGER PRIMARY KEY NOT NULL,
  3. name TEXT NOT NULL UNIQUE
  4. );
  5. CREATE TABLE workspace_envs (
  6. id INTEGER PRIMARY KEY NOT NULL,
  7. workspace_id INTEGER NOT NULL,
  8. name TEXT NOT NULL,
  9. FOREIGN KEY (workspace_id) REFERENCES workspaces (id) ON DELETE CASCADE
  10. );
  11. CREATE TABLE workspace_env_variables (
  12. id INTEGER PRIMARY KEY NOT NULL,
  13. workspace_id INTEGER NOT NULL,
  14. env_id INTEGER NOT NULL,
  15. name TEXT NOT NULL,
  16. value TEXT NOT NULL,
  17. secret BOOLEAN NOT NULL,
  18. FOREIGN KEY (workspace_id) REFERENCES workspaces (id) ON DELETE CASCADE,
  19. FOREIGN KEY (env_id) REFERENCES workspace_envs (id) ON DELETE CASCADE,
  20. UNIQUE(env_id, name)
  21. );
  22. CREATE TABLE workspace_entries (
  23. id INTEGER PRIMARY KEY NOT NULL,
  24. workspace_id INTEGER NOT NULL,
  25. parent_id INTEGER,
  26. name TEXT NOT NULL,
  27. type INTEGER NOT NULL,
  28. FOREIGN KEY (parent_id) REFERENCES workspace_entries (id) ON DELETE CASCADE,
  29. FOREIGN KEY (workspace_id) REFERENCES workspaces (id) ON DELETE CASCADE
  30. );
  31. CREATE TABLE request_params (
  32. id INTEGER PRIMARY KEY NOT NULL,
  33. workspace_id INTEGER NOT NULL,
  34. request_id INTEGER UNIQUE NOT NULL,
  35. method TEXT NOT NULL,
  36. url TEXT NOT NULL,
  37. FOREIGN KEY (request_id) REFERENCES workspace_entries (id) ON DELETE CASCADE,
  38. FOREIGN KEY (workspace_id) REFERENCES workspaces (id) ON DELETE CASCADE
  39. );
  40. CREATE TABLE request_path_params (
  41. id INTEGER PRIMARY KEY NOT NULL,
  42. position INTEGER NOT NULL,
  43. request_id INTEGER NOT NULL,
  44. name TEXT NOT NULL,
  45. value TEXT NOT NULL,
  46. UNIQUE(position, request_id),
  47. FOREIGN KEY (request_id) REFERENCES workspace_entries (id) ON DELETE CASCADE
  48. );
  49. CREATE TABLE request_bodies (
  50. id INTEGER PRIMARY KEY NOT NULL,
  51. request_id UNIQUE NOT NULL,
  52. content_type TEXT NOT NULL,
  53. body TEXT NOT NULL,
  54. FOREIGN KEY (request_id) REFERENCES workspace_entries (id) ON DELETE CASCADE
  55. );
  56. CREATE TABLE request_headers (
  57. id INTEGER PRIMARY KEY NOT NULL,
  58. request_id INTEGER NOT NULL,
  59. name TEXT NOT NULL,
  60. value TEXT NOT NULL,
  61. FOREIGN KEY (request_id) REFERENCES workspace_entries (id) ON DELETE CASCADE
  62. );