gpt4 book ai didi

database - 如何使用 gorm 设置特定的数据库模式?

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:52 31 4
gpt4 key购买 nike

我正在开发一个 CRUD 应用程序。我正在从一个 api 读取一个 JSON,我想将这个 JSON 写入一个数据库中,在一个特定的模式中使用“数据库/sql”和 GORM结构:

type Veiculo struct {
gorm.Model
Codigo int `json:"vei_codigo"`
Placa string `json:"vei_placa"`
Nome string `json:"vei_nome"`
}

端点函数:

func CreateVeiculo(c *gin.Context) {

var veiculo model.Veiculo
//id := c.Params.ByName("id")

c.BindJSON(&veiculo)
c.JSON(200, veiculo)

psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+" password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)
dbVeiculosGorm, err := gorm.Open("postgres", psqlInfo)
if err != nil {
panic(err)
}
defer dbVeiculosGorm.Close()

dbVeiculosGorm.AutoMigrate(&model.Veiculo{})

//t := time.Now()
//ts := t.Format("2006-01-02 15:04:05")

dbVeiculosGorm.Create(&model.Veiculo{Placa: veiculo.Placa, Nome: veiculo.Nome}

但是数据库是碰不得的。有多个模式。我必须设置特定的模式吗??我做错了什么?

最佳答案

使用 GORM 2.0 这会起作用。请注意 . 必须为 TablePrefix 添加。

func ConnectDB() (db *gorm.DB, err error) {
db, err = gorm.Open(postgres.New(postgres.Config{
DSN: `user=test password=test dbname=DB-NAME port=5432 sslmode=disable`,
PreferSimpleProtocol: true,
}), &gorm.Config{
NamingStrategy: schema.NamingStrategy{
TablePrefix: "YOUR_SCHEMA_NAME.", // schema name
SingularTable: false,
}})
return
}

关于database - 如何使用 gorm 设置特定的数据库模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203807/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com