2010-07-27 121 views
6

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

在此先感谢。 塔拉·辛格

+0

大多数ORM工具提供使用存储过程的机制,但不能创建它们,因为创建存储过程的语言往往与所讨论的数据库非常紧密地联系在一起。 – ig0774 2010-07-27 00:40:51

回答

7

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

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

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