From 1079c4516c60c2cd71fd00bafcc0de1c28a899be Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Fri, 22 Mar 2019 16:53:16 -0500 Subject: [PATCH] Automatically recreate views with outdated schema --- src/invidious/jobs.cr | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/invidious/jobs.cr b/src/invidious/jobs.cr index 3c8470a5..9aaa7bd3 100644 --- a/src/invidious/jobs.cr +++ b/src/invidious/jobs.cr @@ -129,6 +129,14 @@ def refresh_feeds(db, logger, max_threads = 1) active_threads += 1 spawn do begin + db.query("SELECT * FROM #{view_name} LIMIT 1") do |rs| + # View doesn't contain same number of rows as ChannelVideo + if ChannelVideo.from_rs(rs)[0]?.try &.to_a.size.try &.!= rs.column_count + db.exec("DROP MATERIALIZED VIEW #{view_name}") + raise "valid schema does not exist" + end + end + db.exec("REFRESH MATERIALIZED VIEW #{view_name}") rescue ex # Create view if it doesn't exist