mediawiki-extensions-Echo/sql/postgres/tables-generated.sql
Umherirrender a9511f4180 Convert to abstract schema
This adds the postgres schema to the extension

Bug: T259375
Change-Id: Ib0dca100c9885b12bc53228eddac72a5fb855d26
2022-07-05 21:00:41 +00:00

107 lines
2.9 KiB
SQL

-- This file is automatically generated using maintenance/generateSchemaSql.php.
-- Source: sql/tables.json
-- Do not modify this file directly.
-- See https://www.mediawiki.org/wiki/Manual:Schema_changes
CREATE TABLE echo_event (
event_id SERIAL NOT NULL,
event_type TEXT NOT NULL,
event_variant TEXT DEFAULT NULL,
event_agent_id INT DEFAULT NULL,
event_agent_ip TEXT DEFAULT NULL,
event_extra TEXT DEFAULT NULL,
event_page_id INT DEFAULT NULL,
event_deleted SMALLINT DEFAULT 0 NOT NULL,
PRIMARY KEY(event_id)
);
CREATE INDEX echo_event_type ON echo_event (event_type);
CREATE INDEX echo_event_page_id ON echo_event (event_page_id);
CREATE TABLE echo_notification (
notification_event INT NOT NULL,
notification_user INT NOT NULL,
notification_timestamp TIMESTAMPTZ NOT NULL,
notification_read_timestamp TIMESTAMPTZ DEFAULT NULL,
notification_bundle_hash TEXT NOT NULL,
PRIMARY KEY(
notification_user, notification_event
)
);
CREATE INDEX echo_user_timestamp ON echo_notification (
notification_user, notification_timestamp
);
CREATE INDEX echo_notification_event ON echo_notification (notification_event);
CREATE INDEX echo_notification_user_read_timestamp ON echo_notification (
notification_user, notification_read_timestamp
);
CREATE TABLE echo_email_batch (
eeb_id SERIAL NOT NULL,
eeb_user_id INT NOT NULL,
eeb_event_priority SMALLINT DEFAULT 10 NOT NULL,
eeb_event_id INT NOT NULL,
eeb_event_hash TEXT NOT NULL,
PRIMARY KEY(eeb_id)
);
CREATE UNIQUE INDEX echo_email_batch_user_event ON echo_email_batch (eeb_user_id, eeb_event_id);
CREATE INDEX echo_email_batch_user_hash_priority ON echo_email_batch (
eeb_user_id, eeb_event_hash, eeb_event_priority
);
CREATE TABLE echo_target_page (
etp_id SERIAL NOT NULL,
etp_page INT DEFAULT 0 NOT NULL,
etp_event INT DEFAULT 0 NOT NULL,
PRIMARY KEY(etp_id)
);
CREATE INDEX echo_target_page_event ON echo_target_page (etp_event);
CREATE INDEX echo_target_page_page_event ON echo_target_page (etp_page, etp_event);
CREATE TABLE echo_push_provider (
epp_id SMALLSERIAL NOT NULL,
epp_name TEXT NOT NULL,
PRIMARY KEY(epp_id)
);
CREATE TABLE echo_push_subscription (
eps_id SERIAL NOT NULL,
eps_user INT NOT NULL,
eps_token TEXT NOT NULL,
eps_token_sha256 CHAR(64) NOT NULL,
eps_provider SMALLINT NOT NULL,
eps_updated TIMESTAMPTZ NOT NULL,
eps_data TEXT DEFAULT NULL,
eps_topic SMALLINT DEFAULT NULL,
PRIMARY KEY(eps_id)
);
CREATE UNIQUE INDEX eps_token_sha256 ON echo_push_subscription (eps_token_sha256);
CREATE INDEX eps_provider ON echo_push_subscription (eps_provider);
CREATE INDEX eps_topic ON echo_push_subscription (eps_topic);
CREATE INDEX eps_user ON echo_push_subscription (eps_user);
CREATE INDEX eps_token ON echo_push_subscription (eps_token);
CREATE TABLE echo_push_topic (
ept_id SMALLSERIAL NOT NULL,
ept_text TEXT NOT NULL,
PRIMARY KEY(ept_id)
);