· 5 years ago · Mar 30, 2020, 01:22 AM
1CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
2
3CREATE DATABASE "go-acl";
4
5CREATE TABLE IF NOT EXISTS users (
6 id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(),
7 name VARCHAR(50) NOT NULL,
8 email VARCHAR(50) UNIQUE NOT NULL,
9 password VARCHAR(31) NOT NULL,
10 root BOOLEAN DEFAULT FALSE NOT NULL,
11 created_at TIMESTAMP NOT NULL,
12 updated_at TIMESTAMP NOT NULL
13);
14
15CREATE TABLE IF NOT EXISTS roles (
16 id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(),
17 name VARCHAR(20) NOT NULL,
18 created_at TIMESTAMP NOT NULL,
19 updated_at TIMESTAMP NOT NULL
20);
21
22CREATE TABLE IF NOT EXISTS role_user (
23 role_id UUID NOT NULL REFERENCES roles (id),
24 user_id UUID NOT NULL REFERENCES users (id)
25);
26
27CREATE TABLE IF NOT EXISTS policies (
28 id UUID NOT NULL PRIMARY KEY DEFAULT uuid_generate_v4(),
29 subject VARCHAR(20) NOT NULL,
30 object VARCHAR(20) NOT NULL,
31 action VARCHAR(20) NOT NULL,
32 created_at TIMESTAMP NOT NULL,
33 updated_at TIMESTAMP NOT NULL
34);
35
36CREATE TABLE IF NOT EXISTS policy_user (
37 policy_id UUID NOT NULL REFERENCES policies (id),
38 user_id UUID NOT NULL REFERENCES users (id)
39);