我正在尝试使用来自 Langchain 的 SQLDatabase.from_uri,但我不确定在哪里指定我想要获取表的模式。
db = SQLDatabase.from_uri(f"postgresql+psycopg2://{db_user}:{db_password}@{db_host}:{db_port}/{db_name}")
print(db.dialect)
print(db.get_usable_table_names())
print(db.table_info)
如果我这样做,它会正确连接到数据库,但在打印获取可用名称方法时它是空白的,我想这是因为该数据库上有多个模式,因此我需要找到一种方法来指定该模式。
不熟悉 Langchain 或 Python,但在 Postgresql 中模式是通过 search_path 设置定义的。默认为:
"$user", public
- 首先查看与用户同名的模式,然后查看公共模式
可以通过
SET search_path TO myschema,public;
重新定义
详细信息:https://www.postgresql.org/docs/current/ddl-schemas.html