Class Transaction

The transaction object is used to identify a running transaction. It is created by calling Sequelize.transaction(). To run a query under a transaction, you should pass the transaction in the options object.

See

Hierarchy

  • Transaction

Constructors

Properties

_afterCommitHooks: any
connection: any
finished: any
id: any
name: any
options: any
parent: any
savepoints: any
sequelize: Sequelize

Accessors

  • get LOCK(): typeof LOCK
  • Same as LOCK, but can also be called on instances of transactions to get possible options for row locking directly from the instance.

    Returns typeof LOCK

  • get ISOLATION_LEVELS(): typeof ISOLATION_LEVELS
  • Isolation levels can be set per-transaction by passing options.isolationLevel to sequelize.transaction. Sequelize uses the default isolation level of the database, you can override this by passing options.isolationLevel in Sequelize constructor options.

    Pass in the desired level as the first argument:

    Example

    try {
    const result = await sequelize.transaction({isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE}, transaction => {
    // your transactions
    });
    // transaction has been committed. Do something after the commit if required.
    } catch(err) {
    // do something with the err.
    }

    Property

    Property

    Property

    Property

    Returns typeof ISOLATION_LEVELS

  • get LOCK(): typeof LOCK
  • Possible options for row locking. Used in conjunction with find calls:

    Example

    // t1 is a transaction
    Model.findAll({
    where: ...,
    transaction: t1,
    lock: t1.LOCK...
    });

    Example

    Postgres also supports specific locks while eager loading by using OF:

    UserModel.findAll({
    where: ...,
    include: [TaskModel, ...],
    transaction: t1,
    lock: {
    level: t1.LOCK...,
    of: UserModel
    }
    });

    # UserModel will be locked but TaskModel won't!

    Example

    You can also skip locked rows:

    // t1 is a transaction
    Model.findAll({
    where: ...,
    transaction: t1,
    lock: true,
    skipLocked: true
    });
    # The query will now return any rows that aren't locked by another transaction

    Returns

    possible options for row locking

    Property

    Property

    Property

    Postgres 9.3+ only

    Property

    Postgres 9.3+ only

    Returns typeof LOCK

  • get TYPES(): typeof TRANSACTION_TYPES
  • Types can be set per-transaction by passing options.type to sequelize.transaction. Default to DEFERRED but you can override the default type by passing options.transactionType in new Sequelize. Sqlite only.

    Pass in the desired level as the first argument:

    Example

    try {
    await sequelize.transaction({ type: Sequelize.Transaction.TYPES.EXCLUSIVE }, transaction => {
    // your transactions
    });
    // transaction has been committed. Do something after the commit if required.
    } catch(err) {
    // do something with the err.
    }

    Property

    Property

    Property

    Returns typeof TRANSACTION_TYPES

Methods

  • Adds a hook that is run after a transaction is committed.

    Name

    afterCommit

    Memberof

    Sequelize.Transaction

    Parameters

    • fn: AfterTransactionCommitCallback

      A callback function that is called with the committed transaction

    Returns Transaction

  • Returns Promise<void>

  • Returns void

  • Commit the transaction.

    Returns Promise<void>

  • Kills the connection this transaction uses. Used as a last resort, for instance because COMMIT or ROLLBACK resulted in an error and the transaction is left in a broken state, and releasing the connection to the pool would be dangerous.

    Returns Promise<void>

  • Called to acquire a connection to use and set the correct options on the connection. We should ensure all of the environment that's set up is cleaned up in cleanup() below.

    Parameters

    • Optional useCLS: boolean

      Defaults to true: Use CLS (Continuation Local Storage) with Sequelize. With CLS, all queries within the transaction callback will automatically receive the transaction object.

    Returns Promise<void>

  • Rollback (abort) the transaction

    Returns Promise<void>

  • Returns Promise<void>

Generated using TypeDoc