【发布时间】:2020-03-23 23:19:06
【问题描述】:
使用下面的代码连接到 postgres 将我连接到默认的公共架构。我在哪里可以提及
连接字符串中的模式名称?我正在尝试插入数据。所以当我使用dataframe.to_sql('myschema.mytable', engine, if_exists='append', index=False)
它在公共架构中创建一个带有 myschema.mytable 的表名,而不是将数据插入到已存在于 myschema 下的 mytable 中。
我在 python 中使用 sqlalchemy 库。下面是我的连接字符串。
engine = create_engine('postgres://user:password@host:5432/dbname')
我通过附加 ?currentSchema=schemaname 和 ?schema=schemaname 尝试了 jdbc 方式,但两者都不起作用。
【问题讨论】:
-
在 Postgres 中,您连接到数据库,而不是连接到模式。您似乎已连接到 public,因为这是您的 search path 中唯一的架构。您可以使用任一标准点表示法 (schema_name.object_name) 将适当的路径设置为“将 search_path 设置为 my_schema,public”;
标签: python postgresql sqlalchemy