kemono2/db/migrations/20231014_01_KV93UG-shares.py
2024-07-04 22:08:17 +02:00

61 lines
2.2 KiB
Python

"""
Shares wasnt in yoyo migrations
"""
from yoyo import step
__depends__ = {"20230930_00_TNd34a-add-created-timestamp-to-favs"}
steps = [
step(
"""
CREATE TABLE IF NOT EXISTS public.shares (
id serial4 NOT NULL,
"name" varchar NOT NULL,
description varchar NOT NULL,
uploader int4 NULL,
added timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT shares_pkey PRIMARY KEY (id),
CONSTRAINT shares_uploader_fkey FOREIGN KEY (uploader) REFERENCES public.account(id)
);
CREATE INDEX IF NOT EXISTS shares_added_idx ON public.shares USING btree (added);
CREATE INDEX IF NOT EXISTS shares_uploader_idx ON public.shares USING btree (uploader);
"""
),
step(
"""
CREATE TABLE IF NOT EXISTS public.lookup_share_relationships (
share_id int4 NOT NULL,
service varchar NOT NULL,
user_id varchar NOT NULL,
CONSTRAINT lookup_share_relationships_pkey PRIMARY KEY (share_id, service, user_id),
CONSTRAINT lookup_share_relationships_service_user_id_fkey FOREIGN KEY (service,user_id) REFERENCES public.lookup(service, id),
CONSTRAINT lookup_share_relationships_share_id_fkey FOREIGN KEY (share_id) REFERENCES public.shares(id)
);
"""
),
step(
"""
CREATE TABLE IF NOT EXISTS public.file_share_relationships (
share_id int4 NOT NULL,
upload_url varchar NOT NULL,
upload_id varchar NOT NULL,
file_id int4 NULL,
filename varchar NOT NULL,
CONSTRAINT file_share_relationships_pkey PRIMARY KEY (share_id, upload_id),
CONSTRAINT file_share_relationships_file_id_fkey FOREIGN KEY (file_id) REFERENCES public.files(id),
CONSTRAINT file_share_relationships_share_id_fkey FOREIGN KEY (share_id) REFERENCES public.shares(id)
);
"""
),
step("""DROP INDEX IF EXISTS file_share_id_idx;"""),
]
"""
Use this to remove duplicates from file_server_relationships
DELETE FROM public.file_server_relationships T1
using public.file_server_relationships T2
WHERE T1.ctid > T2.ctid AND T1.file_id = T2.file_id AND T1.remote_path = T2.remote_path
"""