GORM 提供的設定可在初始化時使用
type Config struct { |
SkipDefaultTransaction
GORM 執行寫入(建立/更新/刪除)作業時會在交易中執行,以確保資料一致性,您可以在初始化時停用此功能(如果不需要的話)
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
NamingStrategy
GORM 允許使用者透過覆寫預設的 NamingStrategy
來變更命名慣例,而 NamingStrategy
需要實作 Namer
介面
type Namer interface { |
預設的 NamingStrategy
也提供了一些選項,例如
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
Logger
允許透過覆寫此選項來變更 GORM 的預設記錄器,請參閱 記錄器 以取得更多詳細資訊
NowFunc
變更在建立新時間戳時要使用的函式
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DryRun
產生 SQL
而不會執行,可用於準備或測試產生的 SQL,請參閱 Session 以取得詳細資訊
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
PrepareStmt
PreparedStmt
在執行任何 SQL 時建立一個準備好的陳述式,並將它們快取起來以加速後續的呼叫,請參閱 Session 以取得詳細資訊
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DisableNestedTransaction
在資料庫交易中使用 Transaction
方法時,GORM 會使用 SavePoint(savedPointName)
、RollbackTo(savedPointName)
來提供巢狀交易支援,您可以使用 DisableNestedTransaction
選項來停用此功能,請參閱 Session 以取得詳細資訊
AllowGlobalUpdate
啟用全域更新/刪除,請參閱 Session 以取得詳細資訊
DisableAutomaticPing
GORM 在初始化後會自動 ping 資料庫以檢查資料庫可用性,透過將其設定為 true
來停用此功能
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DisableForeignKeyConstraintWhenMigrating
當執行 AutoMigrate
或 CreateTable
時,GORM 會自動建立資料庫的外來鍵約束,若要停用此功能,請將其設為 true
,詳細資訊請參閱 Migration
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |