mirror of
https://github.com/onepanelio/onepanel.git
synced 2024-08-21 00:00:34 +08:00
28 lines
1.1 KiB
SQL
28 lines
1.1 KiB
SQL
-- +goose Up
|
|
CREATE TABLE workspaces
|
|
(
|
|
id serial PRIMARY KEY,
|
|
uid varchar(30) NOT NULL CHECK(uid <> ''),
|
|
name varchar(30) NOT NULL CHECK(name <> ''),
|
|
namespace varchar(30) NOT NULL,
|
|
phase varchar(50) NOT NULL,
|
|
parameters jsonb NOT NULL,
|
|
|
|
workspace_template_id integer NOT NULL REFERENCES workspace_templates ON DELETE CASCADE,
|
|
workspace_template_version integer NOT NULL,
|
|
|
|
started_at timestamp,
|
|
paused_at timestamp,
|
|
terminated_at timestamp,
|
|
|
|
-- auditing info
|
|
created_at timestamp NOT NULL DEFAULT (NOW() at time zone 'utc'),
|
|
modified_at timestamp
|
|
);
|
|
|
|
CREATE UNIQUE INDEX workspaces_name_namespace_key ON workspaces (name, namespace) WHERE phase <> 'Terminated';
|
|
CREATE UNIQUE INDEX workspaces_uid_namespace_key ON workspaces (uid, namespace) WHERE phase <> 'Terminated';
|
|
|
|
-- +goose Down
|
|
DROP TABLE workspaces;
|