Торговля
Операции базы данных поддерживаются за счет кодирования/базы данных, используемых для подачи асинхронных запросов.
Основные виды применения
Чтобы использовать транзакцию, используйте databasate.transaction в качестве асинхронного контекстного менеджера:
1 2 3 4 5 | |
!!!Примечание Примечание: она должна быть идентичной базе данных, используемой в объекте ormar_config модели.
Чтобы избежать передачи экземпляров базы данных в коде, вы можете извлечь их из каждой модели. База данных, предоставленная во время объявления ormar.Model, доступна через ormar_config.database и доступна из классов и экземпляров.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Вы также можете использовать.transaction() в качестве декоратора функции для любой асинхронной функции:
1 2 3 | |
Блоки транзакций управляются как локальные состояния задачи. Полностью поддерживаются вложенные транзакции и используются точки сохранения базы данных.
Отправить/откат вручную
Для более низкого уровня торгового API вы можете запустить его вручную
1 2 3 4 5 6 7 8 | |
Тестирование
Транзакции также полезны во время тестирования, когда можно применить принудительный откат и нет необходимости очищать данные после каждого тестирования.
1 2 3 4 5 6 | |