首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Flask-Migrate以忽略映射为Flask-SQLAlchemy模型的SQL视图

获取Flask-Migrate以忽略映射为Flask-SQLAlchemy模型的SQL视图
EN

Stack Overflow用户
提问于 2017-02-02 05:21:14
回答 1查看 1.7K关注 0票数 4

我正在使用Flask-SQLAlchemy定义我的模型,然后使用Flask-Migrate自动生成迁移脚本,以便部署到PostgreSQL数据库上。我在我的应用程序中使用的数据库上定义了许多SQL视图,如下所示。

但是,Flask-Migrate现在会为视图生成一个迁移文件,因为它认为它是一个表。如何正确地让Flask-Migrate / Alembic在自动生成期间忽略视图?

SQL视图名称:vw_SampleView,包含两列:idrowcount

代码语言:javascript
复制
class ViewSampleView(db.Model):
    __tablename__ = 'vw_report_high_level_count'

    info = dict(is_view=True)

    id = db.Column(db.String(), primary_key=True)
    rowcount = db.Column(db.Integer(), nullable=False)

这意味着我现在可以像这样进行查询:

代码语言:javascript
复制
ViewSampleView.query.all()

我尝试按照http://alembic.zzzcomputing.com/en/latest/cookbook.html上的说明操作,并将info = dict(is_view=True)部分添加到我的模型中,并将以下部分添加到env.py文件中,但不知道从哪里开始。

代码语言:javascript
复制
def include_object(object, name, type_, reflected, compare_to):
    """
    Exclude views from Alembic's consideration.
    """

    return not object.info.get('is_view', False)

...

context.configure(url=url,include_object = include_object)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-02 23:53:14

我认为(虽然还没有测试)您可以使用__table_args__属性将表标记为视图:

代码语言:javascript
复制
class ViewSampleView(db.Model):
    __tablename__ = 'vw_report_high_level_count'
    __table_args__ = {'info': dict(is_view=True)}

id = db.Column(db.String(), primary_key=True)
rowcount = db.Column(db.Integer(), nullable=False)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41989969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档