2013-09-28 67 views
1

我想在數據庫中首次創建某些默認值。 是否有可用的鉤子/ func,以便它在db創建後只執行一次?如何使用sqlalchemy中的默認值初始化數據庫?

一種方式可能是使用Inspector並檢查表/ db是否可用...然後在創建表之前設置一個標誌。然後使用此標誌插入默認值。

有沒有更好的方法來做到這一點?

回答

2

我通常有一個專用的install函數,因此我可以在這個函數中做任何我需要的函數。但是,如果您只想啓動應用程序並執行Base.metadata.create_all,則可以使用after_create事件。你必須測試它是否給你一個metadata對象或多個table對象並相應地處理它。在這種情況下,你甚至會得到一個你可以用來插入數據的對象。取決於事務管理和數據庫支持,這甚至可能意味着如果插入失敗,表創建將回滾。

根據您的需要,兩種方式都可以,但如果您確定只需要在創建後插入數據,那麼事件方式實際上是最好的主意。