Миграция с SQLObject на SQLAlchemy:: Может ли SQLAlchemy поддерживать нулевое кэширование и автозагрузку обновлений таблиц?
Я хочу знать, может ли SQLAlchemy поддерживать мгновенную загрузку текущего состояния объекта из базы данных, когда другой процесс обновляет некоторые атрибуты того же объекта.
Хочу отметить, что я перехожу с SQLObject на SQLAlchemy. Используя SQLObject, в настоящее время у меня есть одна таблица, как:
class MyConfiguration(SQLObject):
class sqlmeta:
cacheValues = False
attr1 = StringCol(default='')
attr2 = IntCol(default=0)
Как вы знаете, этот параметр cacheValues =False мгновенно сбрасывает обновления атрибутов на диск:
global my_config
my_config = MyConfiguration()
my_config.attr1 = 'some value'
Мгновенное значение attr1 установлено в "некоторое значение", это значение доступно другому процессу, использующему тот же объект my_config.
Я прошел базовое руководство по ORM и Core SQLAlchemy, и, насколько я понимаю, я могу достичь этого с помощью session.merge(), потому что, если я не добавлю или не объединю, состояние "my_config" в SQLAlchemy не будет становится ожидающим / грязным и с autoflush=True, последующий запрос перечитает строку из таблицы.
Еще я подумал, что могу переопределить setattr в MyConfiguration, чтобы мгновенно сбросить изменения в экземпляр. Однако мне это не нравится, потому что это безобразно, и я хочу использовать как можно больше возможностей SQLAlchemy, чем что-то взламывать.
Поэтому я пытаюсь найти точное соответствие этой функции SQLObject в SQLAlchemy. Это возможно?
Заранее спасибо за помощь.