猿问

Gorm 自动迁移创建没有用户定义属性的表 (postgresql)

package main


import (

    "fmt"


    _ "github.com/jinzhu/gorm/dialects/postgres"

    "gorm.io/driver/postgres"

    "gorm.io/gorm"

)


type Books struct {

    gorm.Model

    ID              uint

    title           string

    author          string

    description     string

    display_picture byte

}



func main() {

    

    dsn := //successful create connection string

    

    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})


    if err != nil {

        // fmt.Println(err)

        panic(err)

    }

    b := Books{}

    db.AutoMigrate(&b)

    data := Books{

        title:       "Invisible Cities",

        author:      "Italio Calvino",

        description: "This book shows you the power of prose. It's a beautiful read which will make you feel like you're floating on a cloud.",

    }

    db.Create(&data)

    fmt.Println(data)

}


连接字符串是正确的,因为 db.AutoMitrate(&b) 与数据库连接并实现 ID 和 gorm。模型属性(createdAt等),但是它不会添加我的属性标题,作者和描述。


我花了一整天的时间在谷歌上搜索,但我在其他地方找不到这个错误。任何人都可以帮忙吗?此外,在运行脚本之前,我正在删除postgres中的Books表。


慕尼黑的夜晚无繁华
浏览 76回答 1
1回答

动漫人物

将代码重写为这个,并始终记住在Gorm中我们需要将模型字段大写package mainimport (    "fmt"    _ "github.com/jinzhu/gorm/dialects/postgres"    "gorm.io/driver/postgres"    "gorm.io/gorm")type Books struct {    gorm.Model    ID              uint    Title           string    Author          string    Description     string    Display_Picture byte}func main() {        dsn := //successful create connection string        db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})    if err != nil {        // fmt.Println(err)        panic(err)    }    b := Books{}    db.AutoMigrate(&b)    data := Books{        title:       "Invisible Cities",        author:      "Italio Calvino",        description: "This book shows you the power of prose. It's a beautiful read which will make you feel like you're floating on a cloud.",    }    db.Create(&data)    fmt.Println(data)}
随时随地看视频慕课网APP

相关分类

Go
我要回答