GORM предоставляет конфигурацию, которую можно использовать во время инициализации
type Config struct { |
SkipDefaultTransaction
GORM выполняет операции записи (создания/обновления/удаления) внутри транзакции, чтобы обеспечить целостность данных, вы можете отключить транзакции в процессе инициализации, если они не требуются
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
NamingStrategy
GORM позволяет пользователям изменять преобразование имен, переопределяя стандартный NamingStrategy
, который должен реализовывать интерфейс Namer
type Namer interface { |
По умолчанию NamingStrategy
также предоставляет некоторые опции, таким образом:
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
Logger
Разрешены изменения логирования по умолчанию в GORM, переопределяя эту опцию, смотрите Logger для получения более подробной информации
NowFunc
Изменить функцию, используемую при создании новой отметки времени
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DryRun
Генерировать SQL
без выполнения, может быть использован для подготовки или тестирования SQL, смотрите Сессии для подробностей
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
PrepareStmt
PreparedStmt (подготовка stmt)
создает подготовленную операцию при выполнении любого SQL и кэширует ее для ускорения будущих запросов, смотрите Сессии для подробностей
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DisableNestedTransaction
When using Transaction
method inside a db transaction, GORM will use SavePoint(savedPointName)
, RollbackTo(savedPointName)
to give you the nested transaction support, you could disable it by using the DisableNestedTransaction
option, refer Session for details
AllowGlobalUpdate
Enable global update/delete, refer Session for details
DisableAutomaticPing
GORM automatically ping database after initialized to check database availability, disable it by setting it to true
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DisableForeignKeyConstraintWhenMigrating
GORM creates database foreign key constraints automatically when AutoMigrate
or CreateTable
, disable this by setting it to true
, refer Migration for details
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |