【发布时间】:2019-11-16 14:32:36
【问题描述】:
我有一个 postgres 数据库,我通过 SQLAlchemy 和 alembic(用于迁移)进行管理。通过 alembic 创建数据库迁移时,我在控制台中收到以下信息。
INFO [alembic.ddl.postgresql] Detected sequence named 'my_table_name_id_seq' as owned by integer column 'my_table_name(id)', assuming SERIAL and omitting
我的模型看起来像
class CopyJob(db.Model):
__tablename__ = "my_table_name"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
我将上述内容解释为警告。为我的每个表生成一行。我有两个问题:
- 收到上述警告时我做错了什么
- 我应该修复/明确设置什么,以使其消失。迁移过于冗长。
谢谢!
【问题讨论】:
-
您已将 Alembic 日志记录级别设置为 INFO。所以,这甚至不是警告。这只是信息。如果您不想看到 INFO 行,请将您的日志记录级别更改为 WARN。它可能在 alembic.ini 配置文件的 logger_alembic 部分中。 alembic.sqlalchemy.org/en/latest/…
-
这是一种可能性,但我更喜欢保持 INFO 日志记录级别并仅处理这些特定行。你认为这可能吗?
-
您应该可以使用 logging.Filter (docs.python.org/2/library/logging.html#filter-objects) 来完成。但是假设您使用命令行 alembic 脚本来启动 alembic,将过滤器添加到其日志记录处理程序中,您将无法通过配置来完成。 logging.config.fileConfig 不支持过滤器,这是 alembic 正在使用的。您需要以编程方式启动 alembic,以便您可以自己设置记录器。另一种选择是修补 PostgresqlImpl.autogen_col_reflect 方法中的日志调用。
标签: python postgresql flask alembic