Я использую инструменты отражения sqlalchemy, чтобы получить объект Table. Я делаю это, потому что эти таблицы являются динамическими и таблицы / столбцы могут меняться. Вот код, который я использую:
def getTableByReflection(self, tableName, metadata, engine):
return Table(tableName, metadata, autoload = True, autoload_with = engine)
Проблема заключается в том, что когда приведенный выше код запускается дважды, кажется, что он возвращает одинаковые результаты независимо от того, изменились ли столбцы или нет. Я попытался обновить с помощью mysession.refresh(mytable)
, но это не удалось, поскольку таблица не привязана ни к каким метаданным - что имеет смысл, но тогда почему я вижу кэшированные результаты?
Есть ли способ сказать метаданным / движку / сеансу забыть об этой таблице и разрешить мне ее аккуратно загрузить?