LINUX.ORG.RU

psycopg2 не может вернуть текущую схему через команду «SHOW search_path;»

 , , ,


0

1

1. Создаю собственную схему,
2. переключаюсь на нее,
3. и сразу хочу посмотреть какая схема используется.

Делаю это следующим кодом:

# Подключение к БД с заданными параметрами
connection = psycopg2.connect(**pgConnectionParameters)
cursor = connection.cursor()

# Переключение на заданную схему
dbSchema = 'our_schema'
cursor.execute("CREATE SCHEMA IF NOT EXISTS %s" % dbSchema)
cursor.execute("SET search_path TO %s" % dbSchema)

# Проверка текущей схемы
result = cursor.execute("SHOW search_path;")
print( result )

А результат None. Соответственно, даже fetchone/fetchall от результата вызвать не могу.

Вопрос: почему переменная result равна None?

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

А доки кто будет читать?

The method returns None. If a query was executed, the returned values can be retrieved using fetch*() methods.

Блин, там даже в первом примере показано, как его надо использовать.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)

Вообще я мимо проходил, но судя по документации https://www.psycopg.org/docs/cursor.html он вообще всегда None. А fetch надо не от результата, а от самого «курсора» (что бы сие ни значило).

Так-то SHOW оно и есть SHOW. Я б SELECT current_schema(); использовал. Оно понятнее.

Toxo2 ★★★★
()
Ответ на: комментарий от theNamelessOne

А доки кто будет читать?

ТС считает, что ты выпендриваешься и на самом деле не понимаешь, что там написано. Там же по-английски, а чтобы понимать по-английски надо было родиться и всю жизнь до самой смерти прожить в англоговорящей стране. (с)

frob ★★★★★
()