Method: Webhookdb::Replicator::Base#ensure_all_columns
- Defined in:
- lib/webhookdb/replicator/base.rb
#ensure_all_columns ⇒ Object
We support adding columns to existing integrations without having to bump the version; changing types, or removing/renaming columns, is not supported and should bump the version or must be handled out-of-band (like deleting the integration then backfilling). To figure out what columns we need to add, we can check what are currently defined, check what exists, and add denormalized columns and indices for those that are missing.
508 509 510 511 512 513 514 515 516 517 518 |
# File 'lib/webhookdb/replicator/base.rb', line 508 def ensure_all_columns modification = self.ensure_all_columns_modification return if modification.noop? self.admin_dataset(timeout: :slow_schema) do |ds| modification.execute(ds.db) # We need to clear cached columns on the data since we know we're adding more. # It's probably not a huge deal but may as well keep it in sync. ds.send(:clear_columns_cache) end self.readonly_dataset { |ds| ds.send(:clear_columns_cache) } end |