Flask 物化视图的alembic生成
TL;DR:如何让alembic理解并为在sqlalchemy中创建的物化视图生成SQL 我在用炼金术,也在用alembic和postgres。为了获得一个使用sqlalchemy的物化视图,我遵循了一个主题。我大量使用它,只是有一些小的分歧(本文也使用flask sqlalchemy,但是完整的代码示例直接使用sqlalchemy的声明性基础) 类似地,在具体化视图上生成唯一索引时,我执行相同的直接SQL执行 不幸的是,我的方法很容易出错,并且会产生看似不必要的代码重复 有没有办法让alembic了解我的Flask 物化视图的alembic生成,flask,sqlalchemy,flask-sqlalchemy,alembic,Flask,Sqlalchemy,Flask Sqlalchemy,Alembic,TL;DR:如何让alembic理解并为在sqlalchemy中创建的物化视图生成SQL 我在用炼金术,也在用alembic和postgres。为了获得一个使用sqlalchemy的物化视图,我遵循了一个主题。我大量使用它,只是有一些小的分歧(本文也使用flask sqlalchemy,但是完整的代码示例直接使用sqlalchemy的声明性基础) 类似地,在具体化视图上生成唯一索引时,我执行相同的直接SQL执行 不幸的是,我的方法很容易出错,并且会产生看似不必要的代码重复 有没有办法让alemb
活动视图
,以便在它发生变化时,alembic知道如何更新视图
多谢 出于好奇,你有没有想过这个?从今天开始走这条路。。。
class ActivityView(db.Model):
__table__ = create_materialized_view(
'activity_view',
db.select([
Activity.id.label('id'),
Activity.name.label('name'),
Activity.start_date.label('start_date'),
]).where(
db.and_(
Activity.start_date != None,
Activity.start_date <=
datetime_to_str(datetime.now(tz=pytz.UTC) + timedelta(hours=48))
)
)
)
@classmethod
def refresh(cls, concurrently=True):
refresh_materialized_view(cls.__table__.fullname, concurrently)
db.Index('activity_view_index',
ActivityView.__table__.c.id, ActivityView.__table__.c.start_date,
unique=True)
op.execute(activities_view_sql)