Подтвердить что ты не робот

Выключить предупреждение в sqlalchemy

Я использую sqlalchemy с отражением, пара частичных индексов в моей БД делает это дампом предупреждение следующим образом:

SAWarning: Predicate of partial index i_some_index ignored during reflection

в мои журналы и продолжайте беспорядок. Это не мешает моему приложению. Я бы хотел сохранить эти предупреждения при разработке, но не на уровне производства. Кто-нибудь знает, как отключить это?

4b9b3361

Ответ 1

Python предупреждающий модуль предоставляет удобный контекстный менеджер, который улавливает предупреждения для вас.

Здесь, как отфильтровать предупреждение SQLAlchemy.

import warnings
from sqlalchemy import exc as sa_exc

with warnings.catch_warnings():
    warnings.simplefilter("ignore", category=sa_exc.SAWarning)
    # code here...

Что касается разработки и производства, вы можете просто обернуть это предупреждение вокруг точки входа приложения или внешнего script, который вызывает ваше приложение в рабочей среде.

Обычно я решаю это, имея переменную среды, которая выполняет несколько иной путь кода, чем при разработке, например, обертывания вокруг другого промежуточного программного обеспечения и т.д.

Ответ 2

предупреждение означает, что вы отразили таблицу или метаданные и читаете в индексах postgresql, которые имеют некоторое сложное условие, которое код отражения SQLAlchemy не знает, что делать. Это безобидное предупреждение, так как отражают или нет индексы, не влияет на работу приложения, если вы не хотите повторно выдавать инструкции CREATE для этих таблиц/индексов в другой базе данных.