如何使用Gorm连接PostgreSQL数据库



我无法连接到PostgreSQL。

var db *gorm.DB
var err error
func main() {
    router := mux.NewRouter()
    var err error
    db, err = gorm.Open("postgres", "host=localhost port=5432 user=postgres dbname=dvdrental password=12345")
    if err != nil {
        panic("failed to connect database")
    }

我希望数据库已连接并获取 api。

这是我发现连接到 postgres 的最佳方式。

import _ "github.com/jinzhu/gorm/dialects/postgres"
dsn := url.URL{
        User:     url.UserPassword(conf.User, conf.Password),
        Scheme:   "postgres",
        Host:     fmt.Sprintf("%s:%d", conf.Host, conf.Port),
        Path:     conf.DBName,
        RawQuery: (&url.Values{"sslmode": []string{"disable"}}).Encode(),
    }
    db, err := gorm.Open("postgres", dsn.String())

按照官方文档,它对我有用,访问 https://gorm.io/docs/connecting_to_the_database.html

import (
  "gorm.io/driver/postgres"
  "gorm.io/gorm"
)
dsn := "host=localhost user=gorm password=gorm dbname=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})

我只需要删除主机变量并输入其余详细信息即可。

首先,这个问题保留了想象的空间。

无论如何,以下是您无法将 gorm 连接到 postgres 的可能用例:

  1. 确保您的帖子在您指定的主机中运行良好(在本例中为:本地主机(
  2. 如果没问题,请确保您的用户和密码没问题

如果一切正常,您可以在 CLI 中签入:

$ sudo -i -u postgres
$ psql

如果成功,则意味着代码中的其他内容。据我所知,您没有显示导入部分。你默默地导入了波斯格雷斯戈尔姆方言吗?

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

最新更新