first commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE SEQUENCE IF NOT EXISTS rol_pages_id_seq;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS rol_pages (
|
||||
id int4 NOT NULL DEFAULT nextval('rol_pages_id_seq'),
|
||||
"name" varchar(20) NOT NULL,
|
||||
icon varchar(100) NULL,
|
||||
url text NOT NULL,
|
||||
"level" int2 NOT NULL DEFAULT 0,
|
||||
sort int2 NOT NULL DEFAULT 0,
|
||||
parent int4 NULL,
|
||||
active bool NOT NULL DEFAULT true,
|
||||
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at timestamp NULL,
|
||||
deleted_at timestamp NULL,
|
||||
CONSTRAINT rol_pages_pkey PRIMARY KEY (id),
|
||||
CONSTRAINT rol_pages_parent_fkey FOREIGN KEY (parent) REFERENCES rol_pages(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Index untuk performa query
|
||||
CREATE INDEX idx_rol_pages_parent ON rol_pages(parent) WHERE deleted_at IS NULL;
|
||||
CREATE INDEX idx_rol_pages_level ON rol_pages(level) WHERE deleted_at IS NULL;
|
||||
CREATE INDEX idx_rol_pages_active ON rol_pages(active) WHERE deleted_at IS NULL;
|
||||
CREATE INDEX idx_rol_pages_sort ON rol_pages(sort) WHERE deleted_at IS NULL;
|
||||
|
||||
-- Trigger untuk update updated_at
|
||||
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
||||
RETURNS TRIGGER AS $
|
||||
BEGIN
|
||||
NEW.updated_at = CURRENT_TIMESTAMP;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$ language 'plpgsql';
|
||||
|
||||
CREATE TRIGGER update_rol_pages_updated_at BEFORE UPDATE ON rol_pages
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DROP TRIGGER IF EXISTS update_rol_pages_updated_at ON rol_pages;
|
||||
DROP FUNCTION IF EXISTS update_updated_at_column();
|
||||
DROP INDEX IF EXISTS idx_rol_pages_parent;
|
||||
DROP INDEX IF EXISTS idx_rol_pages_level;
|
||||
DROP INDEX IF EXISTS idx_rol_pages_active;
|
||||
DROP INDEX IF EXISTS idx_rol_pages_sort;
|
||||
DROP TABLE IF EXISTS rol_pages;
|
||||
DROP SEQUENCE IF EXISTS rol_pages_id_seq;
|
||||
-- +goose StatementEnd
|
||||
@@ -0,0 +1,17 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE TABLE rol_component (
|
||||
id int4 NOT NULL,
|
||||
"name" varchar(100) NULL,
|
||||
description text NULL,
|
||||
directory text NOT NULL,
|
||||
active bool NOT NULL,
|
||||
fk_rol_pages_id int4 NOT NULL,
|
||||
sort int2 NULL
|
||||
);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
SELECT 'down SQL query';
|
||||
-- +goose StatementEnd
|
||||
@@ -0,0 +1,20 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE TABLE rol_permission (
|
||||
id int4 NOT NULL,
|
||||
"create" bool NULL,
|
||||
"read" bool NULL,
|
||||
"update" bool NULL,
|
||||
"disable" bool NULL,
|
||||
"delete" bool NULL,
|
||||
active bool NULL,
|
||||
fk_rol_pages_id int4 NULL,
|
||||
role_keycloak _text NULL,
|
||||
group_keycloak _text NULL
|
||||
);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
SELECT 'down SQL query';
|
||||
-- +goose StatementEnd
|
||||
@@ -0,0 +1,16 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE TABLE role_access.rol_master (
|
||||
id int4 NOT NULL,
|
||||
"name" varchar(100) NULL,
|
||||
active bool NULL,
|
||||
created_at timestamp NULL,
|
||||
updated_at timestamp NULL,
|
||||
CONSTRAINT rol_master_role_pk PRIMARY KEY (id)
|
||||
);
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
SELECT 'down SQL query';
|
||||
-- +goose StatementEnd
|
||||
Reference in New Issue
Block a user