gpt4 book ai didi

Flask Migrate 使用不同的 postgres 模式( __table_args__ = {'schema' : 'test_schema' ]})

转载 作者:行者123 更新时间:2023-12-03 16:22:31 25 4
gpt4 key购买 nike

我正在尝试使用flask、sqlalchemy 和flask_migrate ...

但是每次运行 manage.py migrate 时,alembic 总是将我的模型检测为新表。

我想我把 table_args 在我的模型中以不同的 postgres 模式存储表:

class Entry(db.Model):
__table_args__ = {'schema': app.config['BASE_SCH']}
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
slug = db.Column(db.String(100), unique=True)
body = db.Column(db.Text)
status = db.Column(db.SmallInteger, default=STATUS_PUBLIC)
created_timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
modified_timestamp = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now)

如果我删除 table_args 我的模型线, flask 迁移工作正常。将我的表存储在 puclic postgres 模式中。

那么,如何在 flask 中使用不同的 postgres 表模式?

谢谢!

最佳答案

终于想通了:有一个 include_schemas配置中的选项,您必须设置为 True强制 Alembic 在生成迁移之前扫描所有架构。

(略)更多详情:http://alembic.zzzcomputing.com/en/latest/api/runtime.html#alembic.runtime.environment.EnvironmentContext.configure.params.include_schemas

我并不完全清楚为什么 Alembic/Flask-Migrate 会在没有首先设置此选项的情况下为非默认模式中的表生成迁移......或者更确切地说,它会为非默认模式创建迁移但不会发现这一事实DB中的这些表是一种令人惊讶的行为。

关于Flask Migrate 使用不同的 postgres 模式( __table_args__ = {'schema' : 'test_schema' ]}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40577640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com