AttributeError:“DatabaseWrapper”对象没有属性“set_schema_to_public”(tenat_schemas)

问题描述 投票:0回答:4

我正在使用 Django+tenant_schemas,我的应用程序的本地版本运行良好。但是,当我尝试将其推送到暂存(Heroku+Docker)时,出现以下错误:

AttributeError:“DatabaseWrapper”对象没有属性 “set_schema_to_public”(tenat_schemas)。

代码指向:

tenant_schemas/middleware.py in process_request at line 46:

   connection.set_schema_to_public()

我不明白为什么会出现此错误。任何建议将不胜感激。谢谢

django docker heroku multi-tenant
4个回答
5
投票

我的问题是,按照

docs
上的说明,我对数据库引擎使用了
django.db.backends.postgresql_psycopg2
而不是 django_tenants.postgresql_backend


3
投票

如果没有更多信息,很难回答这个问题,但问题的原因可能是您尝试在 Heroku 上使用 sqlite。当您尝试将 sqlite 后端与 pgsql 包装器(或 mysql)一起使用时,会引发此错误。如果您还没有阅读过 Heroku 上 Django 应用程序的配置指南,您应该阅读一下。如果您发布 settings.py 中的相关部分(请删除秘密!)和您的 Procfile,将更容易为解决方案提供更多帮助。

    


0
投票

DB_ENGINE=django.db.backends.postgresql

然后我得到了这个错误 连接.set_schema(schema_name,tenant_type =tenant_type,include_public = False) ^^^^^^^^^^^^^^^^^^^^^^^ AttributeError:“DatabaseWrapper”对象没有属性“set_schema” 然后我更新数据库引擎

DB_ENGINE=django_tenants.postgresql_backend

那么这个问题就通过更新代码解决了


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.