我在 superbase.com 创建了一个 Postgres 数据库,并想使用 GORM 将其连接到我的 Golang 项目。但是当我尝试迁移表时,它会抛出错误。
#database.go
package initializers
import (
"fmt"
"log"
"os"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
var DB *gorm.DB
func ConnectToDB() {
var err error
dsn := os.Getenv("DB_URL")
DB, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatal(DB, "Failed to connect to database")
} else {
fmt.Println(DB, "Database connection established successfully")
}
}
#migrate.go
package main
import (
"GinGorm/initializers"
"GinGorm/models"
)
func init() {
initializers.LoadEnvVariables()
initializers.ConnectToDB()
}
func main() {
post := &models.Post{}
initializers.DB.Debug().AutoMigrate(post)
}
命令抛出错误:go run migrate/migrate.go
&{0xc0001ce480 0 0xc00005f6c0 1} 数据库连接已建立 成功恐慌:运行时错误:内存地址无效或为零 指针取消引用 [信号 0xc0000005 code=0x0 addr=0x28 pc=0xc19372]
goroutine 1 [运行]: gorm.io/gorm.(*DB).getInstance(0x70?) C:/Users/harsh/go/pkg/mod/gorm.io/[电子邮件受保护]/gorm.go:406 +0x12 gorm.io/gorm.(*DB).Debug(0x0) C:/Users/harsh/go/pkg/mod/gorm.io/[电子邮件受保护]/gorm.go:329 +0x18 main.main() D:/Code/Go/gin/GinGorm/migrate/migrate.go:15 +0x2e 退出状态 2