【问题标题】:How to set Heroku app to specific Postgres schema?如何将 Heroku 应用程序设置为特定的 Postgres 架构?
【发布时间】:2021-09-18 00:31:13
【问题描述】:

在 Heroku 中配置了一个数据库。 Django 应用程序连接良好,但表被放在公共模式中。

这些表应位于“发票”架构中。该架构已经创建,但它是空的。下面是 settings.py 目前的样子:

DATABASES["default"] = dj_database_url.config(
    conn_max_age=600,
    ssl_require=True,
)
DB_SEARCH_PATH = os.environ.get("DB_SEARCH_PATH", "invoices")

【问题讨论】:

    标签: django postgresql heroku


    【解决方案1】:

    未设置搜索路径。我使用以下方法添加它:

    @receiver(connection_created)
    def set_search_path(sender, **kwargs):
        """Store tables in a separate schema."""
        from django.conf import settings
    
        search_path = settings.DB_SEARCH_PATH
    
        conn = kwargs.get("connection")
        if search_path and conn is not None:
            cursor = conn.cursor()
            cursor.execute("SET search_path='{}'".format(search_path))
    

    它监听 connection_created 信号并使用 DB_SEARCH_PATH 变量设置搜索路径。

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 2013-12-29
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      相关资源
      最近更新 更多