module Clear::SQL::Transaction
Direct including types
Defined in:
clear/sql/transaction.crInstance Method Summary
- 
        #after_commit(connection : String = "default", &block : DB::Connection -> Nil)
        
          Register a callback function which will be fired once when SQL COMMIToperation is called
- 
        #in_transaction?(connection : String = "default")
        
          Check whether the current pair of fiber/connection is in transaction block or not. 
- 
        #rollback(to = nil)
        
          Rollback a transaction or return to the previous savepoint in case of a with_savepoint block. 
- 
        #rollback_transaction
        
          Rollback the transaction. 
- 
        #transaction(connection : String = "default", level : Level = Level::Serializable, &)
        
          Enter new transaction block for the current connection/fiber pair. 
- 
        #with_savepoint(sp_name : Symbolic | Nil = nil, connection_name : String = "default", &)
        
          Create a transaction, but this one is stackable using savepoints. 
Instance Method Detail
Register a callback function which will be fired once when SQL COMMIT
operation is called
This can be used for example to send email, or perform others tasks when you want to be sure the data is secured in the database.
transaction do
  @user = User.find(1)
  @user.subscribe!
  Clear::SQL.after_commit { Email.deliver(ConfirmationMail.new(@user)) }
endIn case the transaction fail and eventually rollback, the code won't be called.
Check whether the current pair of fiber/connection is in transaction block or not.
Rollback a transaction or return to the previous savepoint in case of a
with_savepoint block.
The params to offer
Rollback the transaction. In case the call is made inside a savepoint block rollback everything.
Enter new transaction block for the current connection/fiber pair.
Example:
Clear::SQL.transaction do
  # do something
  Clear::SQL.transaction do # Technically, this block do nothing, since we already are in transaction
    rollback                # < Rollback the up-most `transaction` block.
  end
endsee #with_savepoint to use a stackable version using savepoints.
Create a transaction, but this one is stackable using savepoints.
Example:
Clear::SQL.with_savepoint do
  # do something
  Clear::SQL.with_savepoint do
    rollback # < Rollback only the last `with_savepoint` block
  end
end