如何使用 alembic 工具创建“查看迁移”脚本

use*_*336 4 sql sqlalchemy alembic

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

CREATE VIEW myview AS
SELECT column_name(s)
FROM table_name
 WHERE condition
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

taf*_*fit 7

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

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

视图定义如下:

myview = ReplaceableObject('myview',
    """
    SELECT * FROM mytable
    """
)
Run Code Online (Sandbox Code Playgroud)

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