Creates a new transaction instance
A configured sequelize Instance
An object with options
Private
Readonly
_afterPrivate
connectionPrivate
finishedPrivate
Readonly
idPrivate
Readonly
namePrivate
Readonly
optionsPrivate
Readonly
parentPrivate
Readonly
savepointsStatic
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.
}
Static
LOCKPossible options for row locking. Used in conjunction with find
calls:
// t1 is a transaction
Model.findAll({
where: ...,
transaction: t1,
lock: t1.LOCK...
});
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!
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
possible options for row locking
Postgres 9.3+ only
Postgres 9.3+ only
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.
}
Adds a hook that is run after a transaction is committed.
afterCommit
Sequelize.Transaction
A callback function that is called with the committed transaction
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.
Optional
useCLS: booleanDefaults to true: Use CLS (Continuation Local Storage) with Sequelize. With CLS, all queries within the transaction callback will automatically receive the transaction object.
Generated using TypeDoc
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