GORM 提供了可在初始化期间使用的配置
type Config struct { |
跳过默认事务
GORM 在事务中执行写操作(创建/更新/删除)以确保数据一致性,如果不需要,您可以在初始化期间禁用它
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
命名策略
GORM 允许用户通过覆盖默认的 NamingStrategy
来更改命名约定,该策略需要实现接口 Namer
type Namer interface { |
默认的 NamingStrategy
也提供了一些选项,例如
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
日志记录器
允许通过覆盖此选项来更改 GORM 的默认日志记录器,有关详细信息,请参阅日志记录器
NowFunc
更改创建新时间戳时要使用的函数
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
空运行
生成 SQL
但不执行,可用于准备或测试生成的 SQL,有关详细信息,请参阅会话
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
预处理语句
PreparedStmt
在执行任何 SQL 时创建一个预处理语句,并缓存它们以加快将来的调用,有关详细信息,请参阅会话
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
禁用嵌套事务
在数据库事务中使用 Transaction
方法时,GORM 将使用 SavePoint(savedPointName)
、RollbackTo(savedPointName)
为您提供嵌套事务支持,您可以使用 DisableNestedTransaction
选项禁用它,有关详细信息,请参阅会话
允许全局更新
启用全局更新/删除,有关详细信息,请参阅会话
禁用自动 Ping
GORM 在初始化后自动 ping 数据库以检查数据库可用性,通过将其设置为 true
来禁用它
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
迁移时禁用外键约束
GORM 在 AutoMigrate
或 CreateTable
时自动创建数据库外键约束,通过将其设置为 true
来禁用它,有关详细信息,请参阅迁移
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |