CREATE TYPE access_level AS ENUM ( 'user', 'moderator', 'admin' );
CREATE TABLE people (
id SERIAL PRIMARY KEY,
name VARCHAR NOT NULL,
email VARCHAR,
age INTEGER,
contact BOOLEAN DEFAULT false,
phone VARCHAR(50)
);
CREATE TABLE "user" (
id SERIAL PRIMARY KEY,
username VARCHAR UNIQUE NOT NULL,
email VARCHAR NOT NULL,
password VARCHAR NOT NULL,
access access_level NOT NULL DEFAULT 'user',
age INTEGER DEFAULT NULL,
plugin VARCHAR(50) NOT NULL DEFAULT 'password',
avatar VARCHAR NOT NULL DEFAULT '',
created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE blog (
id SERIAL PRIMARY KEY,
username VARCHAR REFERENCES "user" (username) ON UPDATE CASCADE,
title TEXT NOT NULL,
slug TEXT,
markdown TEXT NOT NULL,
html TEXT,
is_published BOOLEAN NOT NULL DEFAULT FALSE,
published_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS mojo_migrations (
name TEXT UNIQUE NOT NULL,
version BIGINT NOT NULL CHECK (version >= 0)
);