From 4865529fed65ac1a56bd4e36859828fcce314183 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Wed, 27 Feb 2019 09:10:28 -0600 Subject: [PATCH] Create views if they don't exist --- src/invidious/jobs.cr | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/invidious/jobs.cr b/src/invidious/jobs.cr index 721edd54..dd782727 100644 --- a/src/invidious/jobs.cr +++ b/src/invidious/jobs.cr @@ -131,7 +131,16 @@ def refresh_feeds(db, logger, max_threads = 1) begin db.exec("REFRESH MATERIALIZED VIEW #{view_name}") rescue ex - logger.write("REFRESH #{email} : #{ex.message}\n") + # Create view if it doesn't exist + if ex.message.try &.ends_with? "does not exist" + PG_DB.exec("CREATE MATERIALIZED VIEW #{view_name} AS \ + SELECT * FROM channel_videos WHERE \ + ucid = ANY ((SELECT subscriptions FROM users WHERE email = E'#{email.gsub("'", "\\'")}')::text[]) \ + ORDER BY published DESC;") + logger.write("CREATE #{view_name}") + else + logger.write("REFRESH #{email} : #{ex.message}\n") + end end active_channel.send(true)