update site changed once rather than inline - edge case where change boolean is overwritten by update with old data

This commit is contained in:
Kyle Drake 2019-10-07 00:20:58 -07:00
parent 0444461b2e
commit 00cd44878a

View file

@ -1607,23 +1607,17 @@ class Site < Sequel::Model
DB["update sites set space_used=space_used#{new_size < 0 ? new_size.to_s : '+'+new_size.to_s} where id=?", self.id].first DB["update sites set space_used=space_used#{new_size < 0 ? new_size.to_s : '+'+new_size.to_s} where id=?", self.id].first
if opts[:new_install] != true if opts[:new_install] != true
if files.select {|f| f[:filename] =~ /^\/?index.html$/}.length > 0 || site_changed == true if files.select {|f| f[:filename] =~ /^\/?index.html$/}.length > 0 && site_changed != true && !empty_index?
index_changed = true DB[:sites].where(id: self.id).update site_changed: true
else
index_changed = false
end end
index_changed = false if empty_index?
time = Time.now time = Time.now
sql = DB["update sites set site_changed=?, site_updated_at=?, updated_at=?, changed_count=changed_count+1 where id=?", DB["update sites set site_updated_at=?, updated_at=?, changed_count=changed_count+1 where id=?",
index_changed,
time, time,
time, time,
self.id self.id
] ].first
sql.first
if ipfs_archiving_enabled == true if ipfs_archiving_enabled == true
ArchiveWorker.perform_in Archive::ARCHIVE_WAIT_TIME, self.id ArchiveWorker.perform_in Archive::ARCHIVE_WAIT_TIME, self.id