Turn off a warning in sqlalchemy

前端 未结 2 806
孤独总比滥情好
孤独总比滥情好 2020-12-15 04:11

I\'m using sqlalchemy with reflection, a couple of partial indices in my DB make it dump warnings like this:

SAWarning: Predicate of partial index i_some_index

相关标签:
2条回答
  • 2020-12-15 04:17

    the warning means you did a table or metadata reflection, and it's reading in postgresql indexes that have some complex condition which the SQLAlchemy reflection code doesn't know what to do with. This is a harmless warning, as whether or not indexes are reflected doesn't affect the operation of the application, unless you wanted to re-emit CREATE statements for those tables/indexes on another database.

    0 讨论(0)
  • 2020-12-15 04:24

    Python's warning module provides a handy context manager that catches warnings for you.

    Here's how to filter out the SQLAlchemy warning.

    import warnings
    from sqlalchemy import exc as sa_exc
    
    with warnings.catch_warnings():
        warnings.simplefilter("ignore", category=sa_exc.SAWarning)
        # code here...
    

    As for development vs production, you can just have this warning wrap around your application's entry point or an external script that invokes your application in your production environment.

    Usually, I solve this by having an environment variable that executes a slightly different code path than when developing, for example, wrapping around different middleware etc.

    0 讨论(0)
提交回复
热议问题