transaction.ts
961 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { Deferrable, Sequelize, Transaction } from 'sequelize';
import { User } from './models/User';
export const sequelize = new Sequelize('uri');
async function trans() {
const a: number = await sequelize.transaction(async transaction => {
transaction.afterCommit(() => console.log('transaction complete'));
User.create(
{
data: 123,
},
{
transaction,
}
);
return 1;
});
}
async function transact() {
const t = await sequelize.transaction({
deferrable: Deferrable.SET_DEFERRED(['test']),
isolationLevel: Transaction.ISOLATION_LEVELS.READ_COMMITTED,
type: Transaction.TYPES.DEFERRED,
});
await t.commit();
await t.rollback();
}
transact();
async function nestedTransact() {
const tr = await sequelize.transaction({
transaction: await sequelize.transaction(),
});
await tr.commit();
}