Redshift запросы не работают с psycopg2 - PullRequest
0 голосов
/ 25 марта 2019

Я создаю скрипт Python для взаимодействия с разрешениями схемы (и относительными таблицами) в Redshift. Как предложено в некоторых других сообщениях StackOverflow, я использую библиотеку psycopg2.

Когда я пытаюсь выполнить несколько простых SELECT FROM запросов, у меня нет проблем: я могу выполнить и увидеть результаты без проблем.

Проблема возникает, когда, например, я пытаюсь создать новую схему или предоставить / отменить разрешения. Этот вид запросов не производит никакого эффекта.

Здесь я показываю очень простой пример, в котором я пытаюсь создать новую схему:

conn_string = "dbname='{}' port='{}' host='{}' user='{}' password='{}'".format(DB_NAME, DB_PORT, DB_HOST, DB_USER, DB_PWD)
con = psycopg2.connect(conn_string)


sql = "CREATE SCHEMA new_schema"
cur = con.cursor()
cur.execute(sql)

Но когда я заглядываю в Redshift DB, я не вижу никакой новой схемы с именем new_schema. Такое же поведение происходит, когда я пытаюсь выполнить какой-либо запрос на предоставление / отзыв разрешения.

Кто-нибудь знает, что происходит?

1 Ответ

1 голос
/ 25 марта 2019

Вы должны совершить транзакцию.

con = psycopg2.connect(conn_string)

sql = "CREATE SCHEMA new_schema"
cur = con.cursor()
cur.execute(sql)
con.commit()
...