method
begin_transaction
v7.0.0 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::TransactionManager
begin_transaction(isolation: nil, joinable: true, _lazy: true)public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 233
def begin_transaction(isolation: nil, joinable: true, _lazy: true)
@connection.lock.synchronize do
run_commit_callbacks = !current_transaction.joinable?
transaction =
if @stack.empty?
RealTransaction.new(
@connection,
isolation: isolation,
joinable: joinable,
run_commit_callbacks: run_commit_callbacks
)
else
SavepointTransaction.new(
@connection,
"active_record_#{@stack.size}",
@stack.last,
isolation: isolation,
joinable: joinable,
run_commit_callbacks: run_commit_callbacks
)
end
if @connection.supports_lazy_transactions? && lazy_transactions_enabled? && _lazy
@has_unmaterialized_transactions = true
else
transaction.materialize!
end
@stack.push(transaction)
transaction
end
end