Automatically recreate views with outdated schema

This commit is contained in:
Omar Roth 2019-03-22 16:53:16 -05:00
parent 7381985c79
commit 1079c4516c

View file

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