首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YugabyteDB是否支持Django,尽管目前还不支持SAVEPOINTS功能?

YugabyteDB是否支持Django,尽管目前还不支持SAVEPOINTS功能?
EN

Stack Overflow用户
提问于 2021-09-17 19:42:10
回答 1查看 83关注 0票数 0

设置Django应用程序与YugabyteDB对话,但在运行迁移时遇到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/opt/env/lib/python3.6/site-packages/django/contrib/contenttypes/models.py", line 54, in get_for_model
    ct = self.get(app_label=opts.app_label, model=opts.model_name)
  File "/opt/env/lib/python3.6/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/opt/env/lib/python3.6/site-packages/django/db/models/query.py", line 380, in get
    self.model._meta.object_name
__fake__.DoesNotExist: ContentType matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/env/lib/python3.6/site-packages/django/db/models/query.py", line 464, in get_or_create
    return self.get(**lookup), False
  File "/opt/env/lib/python3.6/site-packages/django/db/models/query.py", line 380, in get
    self.model._meta.object_name
__fake__.DoesNotExist: ContentType matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/env/lib/python3.6/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/opt/env/lib/python3.6/site-packages/django_prometheus/db/common.py", line 63, in execute
    return super(CursorWrapper, self).execute(*args, **kwargs)
psycopg2.errors.FeatureNotSupported: SAVEPOINT <transaction> not supported yet
LINE 1: SAVEPOINT "s140500455238528_x1"
        ^
HINT:  See https://github.com/YugaByte/yugabyte-db/issues/1125. Click '+' on the description to raise its priority

既然YugabyteDB目前似乎不支持SAVEPOINTS,那么我们如何避免这个Django错误呢?

免责声明:这个问题最初是由一位YugabyteDB用户通过电子邮件提出的

EN

回答 1

Stack Overflow用户

发布于 2021-09-19 06:50:54

YugabyteDB将在较新的版本中支持Savepoint feature。所以这个问题可能看不到。

但是,我们已经构建了一个Django backend for YugabyteDB。它保证了YugabyteDB与Django的兼容性。在新版本进入生产环境之前,我们已经禁用了后端的保存点支持,即后端告诉Django它不支持保存点(uses_savepoints = False),因此Django不会自动使用保存点,应该不会看到这个异常。但是,最外层事务的原子性仍然是有保证的。

此外,不应该显式地使用savepoint API,因为它将是无操作的,除非您使用的是支持savepoint的YB版本。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69228721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档