Я хочу знать, может ли 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, чем что-то взламывать.
Итак, я пытаюсь найти точное соответствие функции этого объекта SQLOlchemy. Это возможно?
Заранее спасибо за помощь.