class RubyEventStore::ROM::SQL::Changesets::UpdateEvents
Constants
- UPSERT_COLUMNS
Public Instance Methods
commit()
click to toggle source
# File lib/ruby_event_store/rom/adapters/sql/changesets/update_events.rb, line 12 def commit if SQL.supports_on_duplicate_key_update?(relation.dataset.db) commit_on_duplicate_key_update elsif SQL.supports_insert_conflict_update?(relation.dataset.db) commit_insert_conflict_update else raise "Database doesn't support upserts: #{relation.dataset.db.adapter_scheme}" end end
Private Instance Methods
commit_insert_conflict_update()
click to toggle source
# File lib/ruby_event_store/rom/adapters/sql/changesets/update_events.rb, line 28 def commit_insert_conflict_update relation.dataset.insert_conflict( # constraint: 'index_name', target: :id, update: UPSERT_COLUMNS.each_with_object({}) do |column, memo| memo[column] = Sequel[:excluded][column] end ).multi_insert(to_a) end
commit_on_duplicate_key_update()
click to toggle source
# File lib/ruby_event_store/rom/adapters/sql/changesets/update_events.rb, line 24 def commit_on_duplicate_key_update relation.dataset.on_duplicate_key_update(*UPSERT_COLUMNS).multi_insert(to_a) end