FIX: migrations must be finished to reset flags cache (#29693)
Bug introduced here: https://github.com/discourse/discourse/pull/29609 It was checking if `flags` table existed before resetting the cache. However, `require_message` flag was added in further migration: https://github.com/discourse/discourse/blob/main/db/migrate/20240714231226_duplicate_flags_custom_type_to_require_message.rb#L5 When the admin tried to update Discourse which already has `flags` table but no `require_message` column, it was causing the error. Therefore, we should ensure that all migrations are finished before resetting flags cache. Meta: https://meta.discourse.org/t/update-failing-column-require-message-does-not-exist/335030
This commit is contained in:
parent
8c52345b55
commit
4ad83a98a1
|
@ -2,7 +2,8 @@
|
|||
|
||||
# On initialize, reset flags cache
|
||||
Rails.application.config.to_prepare do
|
||||
if Discourse.cache.is_a?(Cache) && ActiveRecord::Base.connection.table_exists?(:flags)
|
||||
if Discourse.cache.is_a?(Cache) &&
|
||||
!ActiveRecord::Base.connection.migration_context.needs_migration?
|
||||
Flag.reset_flag_settings!
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue