python - mongoDB 和 MySQL 的一个事务,具有一对多关系
问题描述
我的 Django 应用程序同时使用 MySQL 和 MongoDB 来存储其数据。
我需要创建一个事务来从 MySQL 和 MongoDB 中删除一个具有其关系的实例。如果其中一个查询的执行失败(SQL 或 Mongo),我必须回滚所有已执行的查询。那可能吗?
例子:
from django.db import models
class Car(models.Model):
manufacturer = models.ForeignKey('Manufacturer',on_delete=models.CASCADE)
# ...
def delete(self, *args, **kwargs):
...
# delete from mongoDB (must use a session to support multi document tr
return super(Car, self).delete(*args, **kwargs)
class Motorcycle(models.Model):
manufacturer = models.ForeignKey('Manufacturer',on_delete=models.CASCADE)
# ...
def delete(self, *args, **kwargs):
...
# delete from mongoDB (must use a session to support multi document tr
return super(Motorcycle, self).delete(*args, **kwargs)
class Manufacturer(models.Model):
# ...
pass
def delete(self, *args, **kwargs):
...
# delete from mongoDB (must use a session to support multi document transaction)
return super(Manufacturer, self).delete(*args, **kwargs)
当我删除制造商时,我需要从 MySQL 和 MongoDB 中删除相关的汽车和摩托车。如果一个事务失败(假设删除其中一辆摩托车由于某种原因失败),我需要回滚所有事务。
有什么办法吗?
解决方案
推荐阅读
- python-3.x - Python Neo4j 驱动程序 write_transaction 返回空结果
- kubernetes - Kubernetes 'watch' 没有从 pod 内部接收事件
- google-cloud-platform - 通过云互连 (GCP) 连接
- powershell - powershell 天蓝色设备禁用
- xml - 解析 XML 文件 - Powershell
- python - Django:使用 SHA1 加密密码
- python - pathlib 解析函数的不同行为
- ubuntu-18.04 - incron - 无效用户的表 - 重新启动后 - ubuntu 18.04
- ruby-on-rails - ROR 的 S3 IAM 策略问题
- python-3.x - 每次按下按钮时更改 tkinter 标签文本(对于多个按钮)