Я понимаю, что когда мы запускаем запрос select
для таблицы postgres, он получает AccessShareLock
. Он создается только для тех таблиц, где я выполнял select
запросов, но не для других. Я использую sqlalchemy для взаимодействия с postgres, и все, что мне нужно, это то, можем ли мы очистить AccessShareLock
после выполнения оператора select (ниже приведен пример, скопированный из здесь
from sqlalchemy.orm import sessionmaker
from models import OneTable, get_engine
engine = get_engine(database="mydb")
session = sessionmaker(bind=engine)()
results = session.query(OneTable.company_name).all()
# need to remove "AccessShareLock" lock on OneTable
# without explicitly calling session.close() or engine.dispose()
session.close()
Все, что мне нужно, это снять блокировку после запроса таблицы. Я запускаю некоторые сервисы-демоны, которые запрашивают базу данных через регулярные промежутки времени (скажем, раз в час), но мои операторы DDL в этой таблице не выполняются, поскольку для этого требуется AccessExclusiveLock
. Любые предложения о том, как это сделать или как я должен делать, чтобы решить эту проблему