【问题标题】:Python to Create Schema in Postgres Not showing upPython 在 Postgres 中创建模式未显示
【发布时间】:2017-07-28 20:25:56
【问题描述】:

我有这个超级简单的 Python 代码来连接到 Postgres 并创建一个模式。它没有显示错误,但我没有看到 Postgres 中添加的架构。我一定错过了一些明显的东西。

我什至不确定这是否连接到 Postgres,因为当我给它一个错误的密码时,它仍然没有错误地返回。但是当我反复试验时,它一直说连接到位。请帮忙~谢谢!

import psycopg2

psycopg2.autocommit = True

def build_archive(db1):

    db1 = psycopg2.connect(database='postgres', user='operator', password='1234', host='localhost', port='2280')
    cursor = db1.cursor()
    sql = """CREATE SCHEMA app_tools AUTHORIZATION operator;"""
    cursor.execute(sql)

【问题讨论】:

  • operator 用户能否在postgres 数据库中创建架构?

标签: python postgresql


【解决方案1】:

在您的代码中没有实际调用 build_archive() 的地方,因此其中的代码永远不会执行。您需要在函数定义下方添加对 build_archive() 的调用,然后您将开始看到输出。

例如:

import psycopg2

psycopg2.autocommit = True

def build_archive(db1):
    db1 = psycopg2.connect(database='postgres', user='operator',         
           password='1234', host='localhost', port='2280')
    cursor = db1.cursor()
    sql = """CREATE SCHEMA app_tools AUTHORIZATION operator;"""
    cursor.execute(sql)

build_archive()  # Add this call to build_archive()

要了解有关如何在 Python 中使用函数的更多信息,请阅读here

【讨论】:

  • 你好 ecarlin!谢谢你的帮忙。我有它,但它仍然无法正常工作:/ 但是当我执行 select 语句时,它打印一切正常。不知道为什么
  • 执行 DDL (create schema) 语句后需要提交。
  • 再次感谢!我拿走了(db1),现在它正在工作。是的,cco,我添加了那个提交。我认为自动提交就可以了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多