Postgres - Golang Error: pq: Users does not exists
Postgres - Golang Error: pq: Users does not exists
我正在尝试将 Golang 连接到 Postgres 数据库,它在 Gcloud 中并且我已经允许网络 IP。我试图访问用户数据库,然后访问 public 模式中的用户 table,这是数据库结构:
我收到此错误:pq: database "Users" does not exist
我会添加代码:
package ports
import (
"database/sql"
"log"
"github.com/gofiber/fiber/v2"
_ "github.com/lib/pq"
)
func OpenConnection(dbName string) (*sql.DB, error) {
connStr := "<addr>" + dbName
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
return db, err
}
func GetUsers(ctx *fiber.Ctx) error {
db, dbErr := OpenConnection("Users")
if dbErr != nil {
log.Fatalln(dbErr)
}
defer db.Close()
rows, err := db.Query("SELECT * FROM Users")
if err != nil {
log.Fatalln(err)
ctx.JSON("An error ocurred")
}
defer rows.Close()
return ctx.Render("/users", fiber.Map{
"Users": rows,
})
}
我刚刚修复了它,它是两件事的结合:
- 我没有正确组合字符串,当我对其进行硬编码时,我摆脱了数据库错误。
- 在那之后我遇到了一个错误,它会说 table 不存在,问题是我发送了一个不带引号的 table 名称,我需要它区分大小写,所以我必须将名称括在引号之间才能使其正常工作。像这样
package ports
import (
"database/sql"
"log"
"github.com/gofiber/fiber/v2"
_ "github.com/lib/pq"
)
func OpenConnection() (*sql.DB, error) {
connStr := "<connStr>/users"
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
return db, err
}
func GetUsers(ctx *fiber.Ctx, db *sql.DB) error {
defer db.Close()
rows, err := db.Query(`SELECT * FROM "Users"`)
if err != nil {
log.Fatalln(err)
ctx.JSON("An error ocurred")
}
defer rows.Close()
return ctx.Render("/users", fiber.Map{
"Users": rows,
})
}
我正在尝试将 Golang 连接到 Postgres 数据库,它在 Gcloud 中并且我已经允许网络 IP。我试图访问用户数据库,然后访问 public 模式中的用户 table,这是数据库结构:
我收到此错误:pq: database "Users" does not exist
我会添加代码:
package ports
import (
"database/sql"
"log"
"github.com/gofiber/fiber/v2"
_ "github.com/lib/pq"
)
func OpenConnection(dbName string) (*sql.DB, error) {
connStr := "<addr>" + dbName
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
return db, err
}
func GetUsers(ctx *fiber.Ctx) error {
db, dbErr := OpenConnection("Users")
if dbErr != nil {
log.Fatalln(dbErr)
}
defer db.Close()
rows, err := db.Query("SELECT * FROM Users")
if err != nil {
log.Fatalln(err)
ctx.JSON("An error ocurred")
}
defer rows.Close()
return ctx.Render("/users", fiber.Map{
"Users": rows,
})
}
我刚刚修复了它,它是两件事的结合:
- 我没有正确组合字符串,当我对其进行硬编码时,我摆脱了数据库错误。
- 在那之后我遇到了一个错误,它会说 table 不存在,问题是我发送了一个不带引号的 table 名称,我需要它区分大小写,所以我必须将名称括在引号之间才能使其正常工作。像这样
package ports
import (
"database/sql"
"log"
"github.com/gofiber/fiber/v2"
_ "github.com/lib/pq"
)
func OpenConnection() (*sql.DB, error) {
connStr := "<connStr>/users"
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
return db, err
}
func GetUsers(ctx *fiber.Ctx, db *sql.DB) error {
defer db.Close()
rows, err := db.Query(`SELECT * FROM "Users"`)
if err != nil {
log.Fatalln(err)
ctx.JSON("An error ocurred")
}
defer rows.Close()
return ctx.Render("/users", fiber.Map{
"Users": rows,
})
}