2010-07-27 125 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之間的依賴關係,並按照正確的順序創建/刪除它們。