module Sequel::ActiveRecord::DatabaseMethods

Public Instance Methods

connect(*) click to toggle source

Ensure Sequel is not creating its own connection anywhere.

# File lib/sequel/adapters/activerecord.rb, line 7
def connect(*)
  raise Sequel::ActiveRecord::Error, "creating a Sequel connection is not allowed"
end
in_transaction?(*) click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 35
def in_transaction?(*)
  activerecord_connection.transaction_open?
end
synchronize(*) { |activerecord_raw_connection| ... } click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 43
def synchronize(*)
  activerecord_connection.lock.synchronize do
    yield activerecord_raw_connection
  end
end
timezone() click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 49
def timezone
  @timezone || activerecord_model.default_timezone || Sequel.database_timezone
end
transaction(savepoint: nil, rollback: nil, auto_savepoint: nil, server: nil, **options) { || ... } click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 11
def transaction(savepoint: nil, rollback: nil, auto_savepoint: nil, server: nil, **options)
  activerecord_not_supported!("#{options} transaction options") if options.any?

  if in_transaction?
    requires_new = savepoint || Thread.current[:sequel_activerecord_auto_savepoint]
  else
    requires_new = true
  end

  activerecord_model.transaction(requires_new: requires_new) do
    begin
      Thread.current[:sequel_activerecord_auto_savepoint] = true if auto_savepoint
      yield
    rescue Sequel::Rollback => exception
      raise if rollback == :reraise
      raise ::ActiveRecord::Rollback, exception.message, exception.backtrace
    ensure
      Thread.current[:sequel_activerecord_auto_savepoint] = nil if auto_savepoint
    end

    raise ::ActiveRecord::Rollback if rollback == :always
  end
end

Private Instance Methods

activerecord_connection() click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 64
def activerecord_connection
  activerecord_model.connection
end
activerecord_model() click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 68
def activerecord_model
  opts[:activerecord_model]
end
activerecord_not_supported!(feature) click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 72
def activerecord_not_supported!(feature)
  fail Sequel::ActiveRecord::Error, "#{feature} is currently not supported by ActiveRecord adapter"
end
activerecord_raw_connection() click to toggle source
# File lib/sequel/adapters/activerecord.rb, line 60
def activerecord_raw_connection
  activerecord_connection.raw_connection
end
connection_pool_default_options() click to toggle source

We won't be needing a real connection pool.

# File lib/sequel/adapters/activerecord.rb, line 56
def connection_pool_default_options
  { pool_class: Sequel::ConnectionPool }
end