我想在AutoMigrate在資料庫中創建一個表時插入種子資料。
當我執行db.AutoMigrate(&User{})時,它沒有回傳任何與表創建有關的資訊,所以我無法確認表已經被創建、更新或不做任何事情。
有沒有辦法從GORM中知道表的創建資訊,以插入種子資料?
這樣我就可以插入種子資料,比如:
if err = db.AutoMigrate(& User{}); err != nil {
if db.CreatedFirstTime {
//插入種子資料。
}
}
uj5u.com熱心網友回復:
根據docs,你不能從db.AutoMigrate(&User{})得到表的創建資訊。
你可以嘗試使用Migrator和查詢組合來獲得表的資訊。
例如:
if err = db.AutoMigrate(&User{}); err == nil && db.Migrator() .HasTable(& User{}) {
if err := db.First(& User{}).Error; errors.Is(gorm.ErrRecordNotFound, err) {
//Insert seed data。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/313488.html
標籤:
上一篇:[email protected]的ExceptionHandler沒有呼叫ResponseEntityExceptionHandler中的方法
