r, c = cr.fetchone()
# Check if the model registry must be reloaded (e.g. after the
# database has been updated by another process).
- if registry.base_registry_signaling_sequence != r:
+ if registry.base_registry_signaling_sequence > 1 and registry.base_registry_signaling_sequence != r:
_logger.info("Reloading the model registry after database signaling.")
registry = cls.new(db_name)
- registry.base_registry_signaling_sequence = r
# Check if the model caches must be invalidated (e.g. after a write
# occured on another process). Don't clear right after a registry
# has been reload.
- elif registry.base_cache_signaling_sequence != c:
+ if registry.base_cache_signaling_sequence > 1 and registry.base_cache_signaling_sequence != c:
_logger.info("Invalidating all model caches after database signaling.")
- registry.base_cache_signaling_sequence = c
registry.clear_caches()
registry.reset_any_cache_cleared()
# One possible reason caches have been invalidated is the
for column in model._columns.values():
if hasattr(column, 'digits_change'):
column.digits_change(cr)
+ registry.base_registry_signaling_sequence = r
+ registry.base_cache_signaling_sequence = c
finally:
cr.close()