我需要禁用 alembic 迁移日志记录,同时在单元测试中执行迁移,.

我不能只是从 alembic 中删除 alembic.ini 记录器:我在自己执行迁移时需要这个输出。

以下对我不起作用:logging.getLogger('alembic').setLevel(logging.CRITICAL)
我如何在运行时禁用它?

最佳答案

听起来您是通过调用 alembic 命令从单元测试中调用 Alembic,该命令是一个单独的进程,不会继承您的日志记录配置。

相反,您应该以编程方式调用 Alembic:

import logging
import alembic.config
import alembic.command

logging.getLogger('alembic').setLevel(logging.CRITICAL)

alembic_cfg = alembic.config.Config('alembic.ini')
alembic.command.upgrade(alembic_cfg, 'head')

有关 Alembic API 的更多信息,请参阅文档。

关于python - 如何在运行时禁用 alembic 日志记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37311214/

10-12 20:26