gpt4 book ai didi

Django 模型引用 postgres 外部表 (clickhouse_fdw)

转载 作者:行者123 更新时间:2023-11-29 12:23:23 26 4
gpt4 key购买 nike

我有一个 Django 项目。我已经使用 clickhouse_fdw 将 clickhouse 表与 postgres 表连接起来。按照 clickhouse_fdw 的说明,我在 postgres 中做了:

CREATE EXTENSION clickhousedb_fdw;
CREATE SERVER clickhouse_svr FOREIGN DATA WRAPPER clickhousedb_fdw OPTIONS(host 'host', dbname 'dbname', driver '/var/lib/postgresql/libclickhouseodbc.so');
CREATE USER MAPPING FOR CURRENT_USER SERVER clickhouse_svr;
CREATE FOREIGN TABLE clickhouse_table ("date_from" Date, "date_to" Date ... ) server clickhouse_svr options(table_name 'table');

它正在使用 psql 命令工作,但现在我想从 django 访问(我可以毫无问题地访问所有其他表)。我为 clickhouse 表添加了一个新模型,并在 django 中忽略了它的迁移和管理。

然后在 django shell 中我试过了:

ClickHouseTable.objects.all()
ClickHouseTable.objects.raw('SELECT * FROM clickhouse_table LIMIT 1')[0]
from django.db import connection
with connection.cursor() as cursor:
cursor.execute('SELECT * FROM clickhouse_table LIMIT 1')
row = cursor.fetchone()

我得到的每一个查询:

ProgrammingError: permission denied for foreign table clickhouse_table

同样来自 dbshel​​l:

database => SELECT * FROM clickhouse_table LIMIT 1;
ERROR: permission denied for foreign table clickhouse_table

有什么建议吗?

最佳答案

您的 Django 应用程序需要对数据库的完全访问权限。此外,Django 还为您提供了 ORM。您可能会考虑使用它。

关于Django 模型引用 postgres 外部表 (clickhouse_fdw),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57011669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com