61 lines
1.2 KiB
PL/PgSQL
61 lines
1.2 KiB
PL/PgSQL
BEGIN;
|
|
|
|
-- Metadata {{{
|
|
CREATE TABLE version_history(
|
|
component TEXT NOT NULL,
|
|
from_version INTEGER NOT NULL,
|
|
to_version INTEGER NOT NULL,
|
|
author TEXT NOT NULL,
|
|
_timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
INSERT INTO version_history (component, from_version, to_version, author) VALUES ('ROOT', 0, 1, 'Initial Creation');
|
|
|
|
|
|
CREATE OR REPLACE FUNCTION update_timestamp_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW._timestamp = (now() at time zone 'utc');
|
|
RETURN NEW;
|
|
END;
|
|
$$ language 'plpgsql';
|
|
|
|
|
|
CREATE OR REPLACE FUNCTION current_module_version(module_name TEXT)
|
|
RETURNS INTEGER
|
|
AS $$
|
|
SELECT
|
|
to_version
|
|
FROM version_history
|
|
WHERE
|
|
component = $1
|
|
ORDER BY _timestamp DESC
|
|
LIMIT 1;
|
|
$$ LANGUAGE SQL;
|
|
|
|
CREATE TABLE app_config(
|
|
appname TEXT PRIMARY KEY,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
-- }}}
|
|
|
|
-- App metadata {{{
|
|
|
|
CREATE TABLE app_config(
|
|
appname TEXT PRIMARY KEY,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE bot_config(
|
|
appname TEXT PRIMARY KEY REFERENCES app_config(appname) ON DELETE CASCADE,
|
|
sponsor_prompt TEXT,
|
|
sponsor_message TEXT,
|
|
default_skin TEXT
|
|
);
|
|
-- }}}
|
|
|
|
-- TODO: Profile data
|
|
|
|
|
|
COMMIT;
|
|
-- vim: set fdm=marker:
|