【问题标题】:Where to mention schema while connecting to postgres using sqlalchemy in python在 python 中使用 sqlalchemy 连接到 postgres 时在哪里提到架构
【发布时间】: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


【解决方案1】:

@Belayer,感谢您的回复。经过更多研究,您似乎可以在将数据加载到数据库时提及架构名称。

dataframe.to_sql('mytable', con=connection, schema='myschema',if_exists='append', index=False)

【讨论】:

    猜你喜欢
    • 2021-01-29
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2016-12-29
    • 2018-07-24
    • 2011-01-09
    相关资源
    最近更新 更多