GORM V1与V2的差异

j0pj023g  于 2022-10-15  发布在  Go
关注(0)|答案(1)|浏览(404)

有人能用方言解释一下GORM v1和GORM v2之间的区别吗?我一直在重用上一个项目中的代码,该项目使用GORM v1,它从dsn.Hostname查询方言gorm.GetDialect(),并通过gorm.RegisterDialect()应用它。在GORM 2中没有这样的方法,我很困惑这些方法是用来做什么的。似乎如果这些都被移除了,那么我们无论如何都不需要它们了,对吗?

xmjla07d

xmjla07d1#

对于GORM V2,数据库连接更改为

import (
  "gorm.io/driver/postgres"
  "gorm.io/gorm"
)

dsn := "host=localhost user=gorm password=gorm dbname=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})

gorm.Open代码基于方言初始化数据库会话,替换为gorm.RegisterDialect()

// Open initialize db session based on dialector
func Open(dialector Dialector, opts ...Option) (db *DB, err error) {
    config := &Config{}

更多V2接口详情请参考https://gorm.io/docs/

相关问题