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

Posted

技术标签:

【中文标题】AttributeError:“DatabaseWrapper”对象没有属性“set_schema_to_public”(tenat_schemas)【英文标题】:AttributeError: 'DatabaseWrapper' object has no attribute 'set_schema_to_public' (tenat_schemas) 【发布时间】:2018-12-26 17:54:20 【问题描述】:

我正在使用 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()

我无法弄清楚为什么会出现此错误。任何建议将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

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

【讨论】:

你引导我找到正确的答案。似乎我的 ENGINE 在我的 settings.py 文件中被覆盖。谢谢。 您好,我也有同样的问题,不知道怎么解决。你能告诉我解决它的步骤吗?谢谢。【参考方案2】:

我的问题是我按照docs 上的说明使用django.db.backends.postgresql_psycopg2 而不是django_tenants.postgresql_backend 作为我的数据库引擎。

【讨论】:

以上是关于AttributeError:“DatabaseWrapper”对象没有属性“set_schema_to_public”(tenat_schemas)的主要内容,如果未能解决你的问题,请参考以下文章

初学者 Python:AttributeError:'list' 对象没有属性

AttributeError:“字节”对象没有属性“告诉”

AttributeError: 'RDD' 对象没有属性 'show'

AttributeError:“NumpyArrayIterator”对象没有属性“类”

AttributeError:模块 'dbus' 没有属性 'lowlevel'

AttributeError:模块'keras'没有属性'initializers'