44 lines
1.7 KiB
SQL
44 lines
1.7 KiB
SQL
CREATE TABLE IF NOT EXISTS teams (
|
|
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
created_at TIMESTAMP NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMP NOT NULL DEFAULT now(),
|
|
code VARCHAR(40) NOT NULL UNIQUE,
|
|
name VARCHAR(80) NOT NULL UNIQUE,
|
|
active BOOLEAN NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS team_default_roles (
|
|
team_id BIGINT NOT NULL REFERENCES teams (id) ON DELETE CASCADE,
|
|
role VARCHAR(20) NOT NULL,
|
|
PRIMARY KEY (team_id, role)
|
|
);
|
|
|
|
ALTER TABLE users ADD COLUMN IF NOT EXISTS team_id BIGINT REFERENCES teams (id);
|
|
|
|
INSERT INTO teams (created_at, updated_at, code, name, active)
|
|
VALUES
|
|
(now(), now(), 'ITOPS', 'IT운영팀', TRUE),
|
|
(now(), now(), 'DEV1', '개발1팀', TRUE),
|
|
(now(), now(), 'SEC', '보안팀', TRUE)
|
|
ON CONFLICT (code) DO UPDATE
|
|
SET name = EXCLUDED.name,
|
|
active = EXCLUDED.active,
|
|
updated_at = now();
|
|
|
|
INSERT INTO team_default_roles (team_id, role)
|
|
SELECT id, 'ADMIN' FROM teams WHERE code = 'ITOPS'
|
|
ON CONFLICT DO NOTHING;
|
|
INSERT INTO team_default_roles (team_id, role)
|
|
SELECT id, 'HOST' FROM teams WHERE code = 'DEV1'
|
|
ON CONFLICT DO NOTHING;
|
|
INSERT INTO team_default_roles (team_id, role)
|
|
SELECT id, 'SECURITY' FROM teams WHERE code = 'SEC'
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
UPDATE users SET team_id = (SELECT id FROM teams WHERE code = 'ITOPS'), department = 'IT운영팀'
|
|
WHERE username IN ('admin', 'a') AND team_id IS NULL;
|
|
UPDATE users SET team_id = (SELECT id FROM teams WHERE code = 'DEV1'), department = '개발1팀'
|
|
WHERE username IN ('host', 'h') AND team_id IS NULL;
|
|
UPDATE users SET team_id = (SELECT id FROM teams WHERE code = 'SEC'), department = '보안팀'
|
|
WHERE username IN ('security', 's') AND team_id IS NULL;
|