61 lines
2.2 KiB
Python
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
|
|
"""
|