Create views if they don't exist

This commit is contained in:
Omar Roth 2019-02-27 09:10:28 -06:00
parent 0a404cc9a6
commit 4865529fed
1 changed files with 10 additions and 1 deletions

View File

@ -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)