使用SQLAlchemy创建存储过程

时间:2010-07-27 00:23:54

标签: postgresql stored-procedures sqlalchemy

我正在编写一个python脚本来使用SQLAlchemy创建postgres数据库。我也想以同样的方式创建存储过程。我检查了SQL Alchemy Documentations但是无法找到是否可以使用它来创建存储过程。有可能这样做吗?任何教程/示例都会有所帮助。我找到了一些如何使用SQLAlchemy调用SP的示例,而不是如何创建。

提前致谢。 塔拉辛格

1 个答案:

答案 0 :(得分:9)

您可以使用sqlalchemy.sql.expression.text构建来创建stored procedures(实际上,执行任何有效的SQL statement):

t = text("SELECT * FROM users WHERE id=:user_id")
result = connection.execute(t, user_id=12)

但这更像是SQLAlchemy的附录而不是设计用法。
此外,这不能以独立于DMBS的方式完成,这是使用SQLAlchemy等ORM工具的好处之一。
如果您的目标是对数据库模式进行版本控制,您仍然可以使用它,但是您需要完全控制此过程并处理stored proceduresUDFsviews之间的依赖关系。并按正确的顺序创建/删除它们。