①Unmanaged transactions
// First, we start a transaction and save it into a variable const t = await sequelize.transaction();
try {
// Then, we do some calls passing this transaction as an option:
const user = await User.create({ firstName: 'Bart', lastName: 'Simpson' }, { transaction: t });
await user.addSibling({ firstName: 'Lisa', lastName: 'Simpson' }, { transaction: t });
// If the execution reaches this line, no errors were thrown. // We commit the transaction. await t.commit();
} catch (error) {
// If the execution reaches this line, an error was thrown. // We rollback the transaction. await t.rollback();
}
②Managed transactions try {
const result = await sequelize.transaction(async (t) => {
const user = await User.create({ firstName: 'Abraham', lastName: 'Lincoln' }, { transaction: t });
await user.setShooter({ firstName: 'John', lastName: 'Boothe' }, { transaction: t });
return user;
});
// If the execution reaches this line, the transaction has been committed successfully // `result` is whatever was returned from the transaction callback (the `user`, in this case)
} catch (error) {
// If the execution reaches this line, an error occurred. // The transaction has already been rolled back automatically by Sequelize!
}
from:https://sequelize.org/master/manual/transactions.html