kemono2/db/migrations/20210927_01_administrator-groundwork.py
2024-07-04 21:57:05 +02:00

35 lines
1.2 KiB
Python

"""
Add role column to accounts table, make index account_idx on accounts table, add notifications table with indexes
"""
from yoyo import step
__depends__ = {"20211003_01_vHxE2-create-auto-import-tables"}
steps = [
step("ALTER TABLE account ADD COLUMN role varchar DEFAULT 'consumer';", "ALTER TABLE account DROP COLUMN role;"),
step(
"CREATE INDEX IF NOT EXISTS account_idx ON account USING BTREE (username, created_at, role);",
"DROP INDEX IF EXISTS account_idx;",
),
step(
"""
CREATE TABLE IF NOT EXISTS notifications (
id BIGSERIAL PRIMARY KEY,
account_id INT NOT NULL,
type SMALLINT NOT NULL,
extra_info jsonb,
created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
is_seen BOOLEAN NOT NULL DEFAULT FALSE,
FOREIGN KEY (account_id) REFERENCES account(id)
);
CREATE INDEX IF NOT EXISTS notifications_account_id_idx ON notifications USING BTREE ("account_id");
CREATE INDEX IF NOT EXISTS notifications_created_at_idx ON notifications USING BTREE ("created_at");
CREATE INDEX IF NOT EXISTS notifications_type_idx ON notifications USING BTREE ("type");
""",
"""
DROP TABLE IF EXISTS notifications;
""",
),
]