103 lines
3.4 KiB
Python
103 lines
3.4 KiB
Python
"""
|
|
Create file tracking tables
|
|
"""
|
|
|
|
from yoyo import step
|
|
|
|
__depends__ = {"20210805_01_riCyY-index-dms-for-search"}
|
|
|
|
steps = [
|
|
step(
|
|
"""
|
|
CREATE TABLE files (
|
|
id serial primary key,
|
|
hash varchar not null,
|
|
mtime timestamp not null,
|
|
ctime timestamp not null,
|
|
mime varchar,
|
|
ext varchar,
|
|
added timestamp not null DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(hash)
|
|
);
|
|
""",
|
|
"DROP TABLE files;",
|
|
),
|
|
step(
|
|
"""
|
|
CREATE TABLE file_post_relationships (
|
|
file_id int not null REFERENCES files(id),
|
|
filename varchar not null,
|
|
service varchar not null,
|
|
"user" varchar not null,
|
|
post varchar not null,
|
|
contributor_id int REFERENCES account(id),
|
|
inline boolean not null DEFAULT FALSE,
|
|
PRIMARY KEY (file_id, service, "user", post)
|
|
);
|
|
""",
|
|
"DROP TABLE file_post_relationships;",
|
|
),
|
|
step(
|
|
"""
|
|
CREATE TABLE file_discord_message_relationships (
|
|
file_id int not null REFERENCES files(id),
|
|
filename varchar not null,
|
|
server varchar not null,
|
|
channel varchar not null,
|
|
id varchar not null,
|
|
contributor_id int REFERENCES account(id),
|
|
PRIMARY KEY (file_id, server, channel, id)
|
|
);
|
|
""",
|
|
"DROP TABLE file_discord_message_relationships;",
|
|
),
|
|
step(
|
|
"""
|
|
CREATE TABLE file_server_relationships (
|
|
file_id int not null REFERENCES files(id),
|
|
remote_path varchar not null
|
|
);
|
|
""",
|
|
"DROP TABLE file_server_relationships;",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_id_idx ON file_post_relationships USING btree ("file_id")',
|
|
"DROP INDEX file_id_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_post_service_idx ON file_post_relationships USING btree ("service")',
|
|
"DROP INDEX file_post_service_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_post_user_idx ON file_post_relationships USING btree ("user")',
|
|
"DROP INDEX file_post_user_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_post_id_idx ON file_post_relationships USING btree ("post")', "DROP INDEX file_post_id_idx"
|
|
),
|
|
step(
|
|
'CREATE INDEX file_post_contributor_id_idx ON file_post_relationships USING btree ("contributor_id")',
|
|
"DROP INDEX file_post_contributor_id_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_discord_id_idx ON file_discord_message_relationships USING btree ("file_id")',
|
|
"DROP INDEX file_discord_id_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_discord_message_server_idx ON file_discord_message_relationships USING btree ("server")',
|
|
"DROP INDEX file_discord_message_server_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_discord_message_channel_idx ON file_discord_message_relationships USING btree ("channel")',
|
|
"DROP INDEX file_discord_message_channel_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_discord_message_id_idx ON file_discord_message_relationships USING btree ("id")',
|
|
"DROP INDEX file_discord_message_id_idx",
|
|
),
|
|
step(
|
|
'CREATE INDEX file_discord_message_contributor_id_idx ON file_discord_message_relationships USING btree ("contributor_id")',
|
|
"DROP INDEX file_discord_message_contributor_id_idx",
|
|
),
|
|
]
|