Creates a new transaction instance
A configured sequelize Instance
The transaction options.
Private
Readonly
#afterPrivate
Readonly
#afterPrivate
Readonly
#afterPrivate
#connectionPrivate
#finishedPrivate
Readonly
#namePrivate
Readonly
#savepointsReadonly
idReadonly
optionsReadonly
parentSame as Transaction.LOCK, but can also be called on instances of transactions to get possible options for row locking directly from the instance.
use the Lock export
Get the root transaction if nested, or self if this is a root transaction
Static
ISOLATION_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:
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.
}
use the IsolationLevel export
Static
LOCKPossible options for row locking. Used in conjunction with find
calls:
possible options for row locking
// t1 is a transaction
Model.findAll({
where: ...,
transaction: t1,
lock: t1.LOCK...
});
UserModel.findAll({
where: ...,
include: [TaskModel, ...],
transaction: t1,
lock: {
level: t1.LOCK...,
of: UserModel
}
});
UserModel will be locked but TaskModel won't!
// 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
use the Lock export
Static
TYPESTypes 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:
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.
}
use the TransactionType export
Private
#beginPrivate
#cleanupPrivate
#dispatchPrivate
#forcePrivate
#setAdds a hook that is run after a transaction is committed.
A callback function that is called with the transaction
Adds a hook that is run after a transaction is rolled back.
A callback function that is called with the transaction
Adds a hook that is run after a transaction completes, no matter if it was committed or rolled back.
A callback function that is called with the transaction
Changes the isolation level of the 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.Transaction
See