Продолжаю разбираться в связке PostgreSQL+Python+psycopg2.
Вот код, который создает схему our_scheme и создает таблицу в этой схеме:
# Подключение к БД с заданными параметрами
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)
# Проверка текущей схемы
cursor.execute("SHOW search_path;")
result = cursor.fetchone()
print( result )
# Создание таблицы
cursor.execute("CREATE TABLE IF NOT EXISTS our_table (id varchar(128) UNIQUE, name varchar(128))")
Все прекрасно работает. Но теперь берем и меняем название схемы:
dbSchema = 'our_schema'
на
dbSchema = 'validate'
И код резко перестает работать. Появляется ошибка:
$ ./sample.py
('validate',)
Traceback (most recent call last):
File "./sample.py", line 31, in <module>
cursor.execute("CREATE TABLE IF NOT EXISTS our_table (id varchar(128) UNIQUE, name varchar(12
8))")
psycopg2.ProgrammingError: ОШИБКА: схема для создания объектов не выбрана
LINE 1: CREATE TABLE IF NOT EXISTS our_table (id varchar(128) UNIQUE...
Я проверяю те же самые команды в чистой консоли psql - все работает, схема validate создается, в ней создается таблица.
Но почему-то эти же команды через psycopg2 выдают ошибку.
Почему так?