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: