5

有人知道如何使用 create_view 函数使用 alembic 升级函数创建视图吗?例如,我们有:

CREATE VIEW myview AS
SELECT column_name(s)
FROM table_name
 WHERE condition

现在我们要在 alembic 升级函数脚本中定义一个视图来创建“myview”。如何意识到这一点?

谢谢。

4

1 回答 1

9

我知道,这个问题太老了,当时可能不存在这种可能性。但是,对于现在提出这个问题的所有人来说:食谱中现在描述了一种可能性。

op.create_view它通过为您提供额外的操作(如、op.drop_view或)利用创建、删除和替换对象(如视图和存储过程) op.replace_view(myview, replaces="3f2ab897a.myview")。存储过程也是如此,也可以扩展为例如用户定义的函数。

视图定义如下:

myview = ReplaceableObject('myview',
    """
    SELECT * FROM mytable
    """
)

当然,所有这些也可以通过简单的op.execute语句来完成,但是在这种情况下,alembic 会处理DROP VIEW,CREATE VIEWALTER VIEW命令。

于 2016-11-18T14:37:39.077 回答