ente/server/migrations/6_create_usage.up.sql
2024-03-01 13:37:01 +05:30

30 lines
953 B
SQL

CREATE TABLE IF NOT EXISTS usage(
user_id INTEGER NOT NULL,
storage_consumed BIGINT NOT NULL,
CONSTRAINT fk_usage_user_id
FOREIGN KEY(user_id)
REFERENCES users(user_id)
ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS usage_user_id_index ON usage(user_id);
INSERT INTO usage(user_id,storage_consumed)
SELECT user_id, COALESCE(total_file_size+total_thumbnail_size,0) FROM
users,
LATERAL (
SELECT SUM(size) AS total_thumbnail_size
FROM thumbnail_object_keys
LEFT JOIN files ON files.file_id = thumbnail_object_keys.file_id
WHERE
owner_id = users.user_id
) query_1,
LATERAL (
SELECT SUM(size) AS total_file_size
FROM file_object_keys
LEFT JOIN files ON files.file_id = file_object_keys.file_id
WHERE
owner_id = users.user_id
) query_2