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

当我使用 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.go

package main


import (

    "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.DB


func 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


慕标5832272
浏览 118回答 2
2回答

千巷猫影

您必须实现自己的解析器。实际上没有太多的错误消息,它被称为。错误消息中只有一个错误:Stack Tracesnot implemented

偶然的你

问题解决了,我正在升级 gorm.io/gorm v.1.20.8 库以下是我的项目go.mod文件内容。module github.com/yangwawa0323/go-orders-graphql-apigo 1.15require (        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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go