Django不支持MySQL组复制
问题描述:
我使用撰写的MySQL,它使用MySQL 5.7 Group ReplicationDjango不支持MySQL组复制
当使用Django 1.11.4试图做DB测试中,我得到关于rollback_test(因为它没有保持要求的错误主密钥)
和事务写入集提取!=关闭创建SAVEPOINTS的要求。
django.db.utils.OperationalError: (1290, 'The MySQL server is running with the --transaction-write-set-extraction!=OFF option so it cannot execute this statement')
工作一切良好,除了测试。
有什么办法可以告诉Django它是一个组复制MySQL数据库,并避免这些特定的测试?
答
事务写集提取需要使用组复制上的InnoDB
现有版本到MySQL 5.7.19不支持保存在组复制点。
将本地和生产MySQL升级到5.7.19或更高版本。
Replication: Group Replication now supports SQL transaction SAVEPOINT.
至于Django的筑巢原子代码的时候,所以你可能会在将来遇到此问题你的测试之外它创建saves points。你
When the atomic() decorator is nested, it creates a savepoint to allow partial commit or rollback.
可能还需要检查,如果你的生产服务器是properly configured InnoDB的集群。
是的,这是使用Compose for MySQL的问题。因为Django不支持它,所以我只是切换到另一个提供程序 – Yarh
现在可能想查看Compose。 MySQL 5.7.20现在可用 –