Как использовать транзакции в двух разных ORM - PullRequest
1 голос
/ 25 марта 2020

У меня есть кодовая база, использующая sequelize ORM, и я хочу перейти к Objection. js ORM. Есть ли способ повторно использовать транзакцию, начатую в дальнейшем, с помощью возражения js? Чтобы я мог мигрировать итеративно, вместо того, чтобы переписывать все сразу.

1 Ответ

1 голос
/ 25 марта 2020

Если вы можете получить транзакцию knex, запущенную Sequelize, вы можете передать это возражению. js Model.query (trx).

Если Sequelize не использует транзакции knex под капотом, затем, если вы можете получить необработанное соединение с базой данных, которое используется транзакцией Sequelize, вы можете использовать метод построителя запросов .connection(rawConnection), чтобы определить, какое необработанное соединение использовать для knex запросов.

Однако вам не следует использовать функцию транзакции обеих библиотек, чтобы предотвратить запуск / фиксацию транзакции несколько раз.

Люди, которые знают Sequelize, могут завершить этот ответ, сообщив, если / как это позволяет получить соединение, используемое транзакцией Sequelize.

...