1
我想在數據庫中首次創建某些默認值。 是否有可用的鉤子/ func,以便它在db創建後只執行一次?如何使用sqlalchemy中的默認值初始化數據庫?
一種方式可能是使用Inspector並檢查表/ db是否可用...然後在創建表之前設置一個標誌。然後使用此標誌插入默認值。
有沒有更好的方法來做到這一點?
我想在數據庫中首次創建某些默認值。 是否有可用的鉤子/ func,以便它在db創建後只執行一次?如何使用sqlalchemy中的默認值初始化數據庫?
一種方式可能是使用Inspector並檢查表/ db是否可用...然後在創建表之前設置一個標誌。然後使用此標誌插入默認值。
有沒有更好的方法來做到這一點?
我通常有一個專用的install
函數,因此我可以在這個函數中做任何我需要的函數。但是,如果您只想啓動應用程序並執行Base.metadata.create_all
,則可以使用after_create
事件。你必須測試它是否給你一個metadata
對象或多個table
對象並相應地處理它。在這種情況下,你甚至會得到一個你可以用來插入數據的對象。取決於事務管理和數據庫支持,這甚至可能意味着如果插入失敗,表創建將回滾。
根據您的需要,兩種方式都可以,但如果您確定只需要在創建後插入數據,那麼事件方式實際上是最好的主意。