mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-24 18:31:16 +01:00
246 lines
8.4 KiB
SQL
246 lines
8.4 KiB
SQL
-- NOTE: SQLite does not support dropping foreign keys, so we need to create new
|
|
-- tables and copy data instead. To prevent cascade deletes from wrecking stuff,
|
|
-- we start with the leaf tables and finish with the parent tables (eg. folder).
|
|
|
|
----------------------------
|
|
-- Remove http request FK --
|
|
----------------------------
|
|
|
|
CREATE TABLE http_requests_dg_tmp
|
|
(
|
|
id TEXT NOT NULL
|
|
PRIMARY KEY,
|
|
model TEXT DEFAULT 'http_request' NOT NULL,
|
|
workspace_id TEXT NOT NULL
|
|
REFERENCES workspaces
|
|
ON DELETE CASCADE,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
deleted_at DATETIME,
|
|
name TEXT NOT NULL,
|
|
url TEXT NOT NULL,
|
|
method TEXT NOT NULL,
|
|
headers TEXT NOT NULL,
|
|
body_type TEXT,
|
|
sort_priority REAL DEFAULT 0 NOT NULL,
|
|
authentication TEXT DEFAULT '{}' NOT NULL,
|
|
authentication_type TEXT,
|
|
folder_id TEXT,
|
|
body TEXT DEFAULT '{}' NOT NULL,
|
|
url_parameters TEXT DEFAULT '[]' NOT NULL,
|
|
description TEXT DEFAULT '' NOT NULL
|
|
);
|
|
|
|
INSERT INTO http_requests_dg_tmp(id, model, workspace_id, created_at, updated_at, deleted_at, name, url, method,
|
|
headers, body_type, sort_priority, authentication, authentication_type, folder_id,
|
|
body, url_parameters, description)
|
|
SELECT id,
|
|
model,
|
|
workspace_id,
|
|
created_at,
|
|
updated_at,
|
|
deleted_at,
|
|
name,
|
|
url,
|
|
method,
|
|
headers,
|
|
body_type,
|
|
sort_priority,
|
|
authentication,
|
|
authentication_type,
|
|
folder_id,
|
|
body,
|
|
url_parameters,
|
|
description
|
|
FROM http_requests;
|
|
|
|
DROP TABLE http_requests;
|
|
|
|
ALTER TABLE http_requests_dg_tmp
|
|
RENAME TO http_requests;
|
|
|
|
----------------------------
|
|
-- Remove grpc request FK --
|
|
----------------------------
|
|
|
|
CREATE TABLE grpc_requests_dg_tmp
|
|
(
|
|
id TEXT NOT NULL
|
|
PRIMARY KEY,
|
|
model TEXT DEFAULT 'grpc_request' NOT NULL,
|
|
workspace_id TEXT NOT NULL
|
|
REFERENCES workspaces
|
|
ON DELETE CASCADE,
|
|
folder_id TEXT,
|
|
created_at DATETIME DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) NOT NULL,
|
|
updated_at DATETIME DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) NOT NULL,
|
|
name TEXT NOT NULL,
|
|
sort_priority REAL NOT NULL,
|
|
url TEXT NOT NULL,
|
|
service TEXT,
|
|
method TEXT,
|
|
message TEXT NOT NULL,
|
|
authentication TEXT DEFAULT '{}' NOT NULL,
|
|
authentication_type TEXT,
|
|
metadata TEXT DEFAULT '[]' NOT NULL,
|
|
description TEXT DEFAULT '' NOT NULL
|
|
);
|
|
|
|
INSERT INTO grpc_requests_dg_tmp(id, model, workspace_id, folder_id, created_at, updated_at, name, sort_priority, url,
|
|
service, method, message, authentication, authentication_type, metadata, description)
|
|
SELECT id,
|
|
model,
|
|
workspace_id,
|
|
folder_id,
|
|
created_at,
|
|
updated_at,
|
|
name,
|
|
sort_priority,
|
|
url,
|
|
service,
|
|
method,
|
|
message,
|
|
authentication,
|
|
authentication_type,
|
|
metadata,
|
|
description
|
|
FROM grpc_requests;
|
|
|
|
DROP TABLE grpc_requests;
|
|
|
|
ALTER TABLE grpc_requests_dg_tmp
|
|
RENAME TO grpc_requests;
|
|
|
|
---------------------------------
|
|
-- Remove websocket request FK --
|
|
---------------------------------
|
|
|
|
CREATE TABLE websocket_requests_dg_tmp
|
|
(
|
|
id TEXT NOT NULL
|
|
PRIMARY KEY,
|
|
model TEXT DEFAULT 'websocket_request' NOT NULL,
|
|
workspace_id TEXT NOT NULL
|
|
REFERENCES workspaces
|
|
ON DELETE CASCADE,
|
|
folder_id TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
deleted_at DATETIME,
|
|
authentication TEXT DEFAULT '{}' NOT NULL,
|
|
authentication_type TEXT,
|
|
description TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
url TEXT NOT NULL,
|
|
headers TEXT NOT NULL,
|
|
message TEXT NOT NULL,
|
|
sort_priority REAL NOT NULL,
|
|
url_parameters TEXT DEFAULT '[]' NOT NULL
|
|
);
|
|
|
|
INSERT INTO websocket_requests_dg_tmp(id, model, workspace_id, folder_id, created_at, updated_at, deleted_at,
|
|
authentication, authentication_type, description, name, url, headers, message,
|
|
sort_priority, url_parameters)
|
|
SELECT id,
|
|
model,
|
|
workspace_id,
|
|
folder_id,
|
|
created_at,
|
|
updated_at,
|
|
deleted_at,
|
|
authentication,
|
|
authentication_type,
|
|
description,
|
|
name,
|
|
url,
|
|
headers,
|
|
message,
|
|
sort_priority,
|
|
url_parameters
|
|
FROM websocket_requests;
|
|
|
|
DROP TABLE websocket_requests;
|
|
|
|
ALTER TABLE websocket_requests_dg_tmp
|
|
RENAME TO websocket_requests;
|
|
|
|
PRAGMA foreign_keys = ON;
|
|
|
|
---------------------------
|
|
-- Remove environment FK --
|
|
---------------------------
|
|
|
|
CREATE TABLE environments_dg_tmp
|
|
(
|
|
id TEXT NOT NULL
|
|
PRIMARY KEY,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
deleted_at DATETIME,
|
|
workspace_id TEXT NOT NULL
|
|
REFERENCES workspaces
|
|
ON DELETE CASCADE,
|
|
name TEXT NOT NULL,
|
|
variables DEFAULT '[]' NOT NULL,
|
|
model TEXT DEFAULT 'environment',
|
|
environment_id TEXT
|
|
);
|
|
|
|
INSERT INTO environments_dg_tmp(id, created_at, updated_at, deleted_at, workspace_id, name, variables, model,
|
|
environment_id)
|
|
SELECT id,
|
|
created_at,
|
|
updated_at,
|
|
deleted_at,
|
|
workspace_id,
|
|
name,
|
|
variables,
|
|
model,
|
|
environment_id
|
|
FROM environments;
|
|
|
|
DROP TABLE environments;
|
|
|
|
ALTER TABLE environments_dg_tmp
|
|
RENAME TO environments;
|
|
|
|
----------------------
|
|
-- Remove folder FK --
|
|
----------------------
|
|
|
|
CREATE TABLE folders_dg_tmp
|
|
(
|
|
id TEXT NOT NULL
|
|
PRIMARY KEY,
|
|
model TEXT DEFAULT 'folder' NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
deleted_at DATETIME,
|
|
workspace_id TEXT NOT NULL
|
|
REFERENCES workspaces
|
|
ON DELETE CASCADE,
|
|
folder_id TEXT,
|
|
name TEXT NOT NULL,
|
|
sort_priority REAL DEFAULT 0 NOT NULL,
|
|
description TEXT DEFAULT '' NOT NULL
|
|
);
|
|
|
|
INSERT INTO folders_dg_tmp(id, model, created_at, updated_at, deleted_at, workspace_id, folder_id, name, sort_priority,
|
|
description)
|
|
SELECT id,
|
|
model,
|
|
created_at,
|
|
updated_at,
|
|
deleted_at,
|
|
workspace_id,
|
|
folder_id,
|
|
name,
|
|
sort_priority,
|
|
description
|
|
FROM folders;
|
|
|
|
DROP TABLE folders;
|
|
|
|
ALTER TABLE folders_dg_tmp
|
|
RENAME TO folders;
|