亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Gin 或 Gorm 抱怨唯一列索引是語法錯誤,有些不一致

Gin 或 Gorm 抱怨唯一列索引是語法錯誤,有些不一致

Go
繁星點點滴滴 2022-09-12 16:03:32
我從 Gorm 的文檔中獲取了如何創建唯一索引的示例,這似乎只是在聲明模型時向列標記添加 。但是當我嘗試運行它時,它總是會在控制臺中輸出以下消息:,unique(/Users/[...]/main.go:16) [2021-06-26 13:59:20]  near "unique": syntax error 雖然直接從他們的文檔中引用的示例會失敗似乎很奇怪,但我嘗試孤立地運行該代碼,并且它確實可以正常工作。然后,從我的應用程序添加越來越多的代碼,一旦Gin-Gonic被引入并被調用,它似乎就開始輸出該消息。我不知道這是否僅僅是因為Go默認情況下不會輸出錯誤,或者正在發生某種沖突。但無論哪種方式,我也從未讓Gorm真正創建唯一索引;語法錯誤與否。gin.Default()最小可重現代碼如下所示,盡管它的行為相當不一致,運行時大約 5 次中有 1 次沒有任何錯誤:package mainimport (    "github.com/jinzhu/gorm"    _ "github.com/jinzhu/gorm/dialects/sqlite"    "github.com/gin-gonic/gin")type User struct {  gorm.Model  Name string `gorm:"size:40;index:idx_name,unique"`}func main() {    db, _ := gorm.Open("sqlite3", "test.db")    db.AutoMigrate(&User{})    r := gin.Default()    r.Run(":8082")}我該如何解決這個問題;既要擺脫不一致的錯誤,又要實際創建唯一索引?如果相關,我正在Mac上運行它。
查看完整描述

1 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

您從 gorm.io 中舉了一個示例,但您沒有使用正確的包導入。

在這里看到安裝在這里: https://gorm.io/docs/#Install

您正在使用從 v1 (http://v1.gorm.io/docs/) 導入,并使用最新版本中的示例進行編碼。(http://gorm.io/docs/)

在下面的代碼中查看導入和數據庫驅動器初始化:

package main


import (

    "github.com/gin-gonic/gin"

    "gorm.io/driver/sqlite"

    "gorm.io/gorm"

)


type User struct {

    gorm.Model

    Name string `gorm:"size:40;index:idx_name,unique"`

}


func main() {

    db, _ := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})

    db.AutoMigrate(&User{})


    r := gin.Default()

    r.Run("localhost:8082")

}


查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號