Отключить предупреждение в sqlalchemy - PullRequest
25 голосов
/ 08 марта 2011

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

SAWarning: Predicate of partial index i_some_index ignored during reflection

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

Ответы [ 2 ]

41 голосов
/ 08 марта 2011

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

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

import warnings
from sqlalchemy import exc as sa_exc

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

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

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

7 голосов
/ 16 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...