为了账号安全,请及时绑定邮箱和手机立即绑定

gorm.io/gorm 库不能与 graphQL 一起使用

gorm.io/gorm 库不能与 graphQL 一起使用

Go
慕标5832272 2022-08-01 10:06:49
当我使用 github.com/jinzhu/gorm 时,我正在尝试将 github.com/jinzhu/gorm 库与 graphQL 一起使用 go run github.com/99designs/gqlgen init  gqlgen generate生成一个 graphQL 项目。我编写逻辑代码以将数据保存到MySQL innodb引擎表中。一切都很好,因为这是db。自动迁移不会创建外键约束。所以。我将库更改为“grom.io/gorm”,外键是在db创建的。调用自动迁移函数,但是当我将数据发布到http服务器时,会弹出很多错误消息。以下是我的代码。// project root directory server.gopackage mainimport (    "fmt"    "log"    "net/http"    "os"    "github.com/99designs/gqlgen/graphql/handler"    "github.com/99designs/gqlgen/graphql/playground"    // _ "github.com/go-sql-driver/mysql"    "github.com/yangwawa0323/go-orders-graphql-api/graph"    "github.com/yangwawa0323/go-orders-graphql-api/graph/generated"    "github.com/yangwawa0323/go-orders-graphql-api/graph/model"    "gorm.io/driver/mysql"    "gorm.io/gorm")const defaultPort = "8080"const dbName = "test_db4"var db *gorm.DBfunc initDB() *gorm.DB {    var err error    dataSourceName := "root:secret@tcp(localhost:3306)/?parseTime=True"    //db, err = gorm.Open("mysql", dataSourceName)    db, err = gorm.Open(mysql.Open(dataSourceName), &gorm.Config{})    if err != nil {        fmt.Println(err)        panic("failed to connect database")    }    // db.LogMode(true)    db.Debug()    // Create the database. This is a one-time step.    // Comment out if running multiple times - You may see an error otherwise    db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", dbName))    db.Exec(fmt.Sprintf("USE %s", dbName))    // Migration to create tables for Order and Item schema    db.AutoMigrate(&model.Order{}, &model.Item{})    return db}func main() {    port := os.Getenv("PORT")    if port == "" {        port = defaultPort    }为了防止再次运行命令,替换我定义的模型。我创建了一个新的 go 文件gqlgen generate
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您必须实现自己的解析器

实际上没有太多的错误消息,它被称为。错误消息中只有一个错误:Stack Tracesnot implemented


查看完整回答
反对 回复 2022-08-01
?
偶然的你

TA贡献1841条经验 获得超3个赞

问题解决了,我正在升级 gorm.io/gorm v.1.20.8 库


以下是我的项目go.mod文件内容。




module github.com/yangwawa0323/go-orders-graphql-api


go 1.15


require (

        github.com/99designs/gqlgen v0.13.0

        github.com/agnivade/levenshtein v1.1.0 // indirect

        github.com/dgryski/trifles v0.0.0-20200830180326-aaf60a07f6a3 // indirect

        github.com/hashicorp/golang-lru v0.5.4 // indirect

        github.com/kr/text v0.2.0 // indirect

        github.com/mitchellh/mapstructure v1.4.0 // indirect

        github.com/stretchr/testify v1.6.1 // indirect

        github.com/vektah/gqlparser/v2 v2.1.0

        gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect

        gopkg.in/yaml.v2 v2.4.0 // indirect

        gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect

        gorm.io/driver/mysql v1.0.3

        gorm.io/gorm v1.20.8

)

升级库后,我运行命令


shell$ gqlgen generate

一切都很好。


这是我 github.com 源代码。如果您有兴趣,可以下载并尝试。


go-orders-graphql-api


查看完整回答
反对 回复 2022-08-01
  • 2 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信