mirror of
https://github.com/jackc/pgx.git
synced 2025-09-04 19:37:10 +00:00
Update for pgx v5
parent
a755e2bf65
commit
3dd765f1e8
@ -8,10 +8,10 @@ pgx requires a recent version of Go with module support. Use the `go version` co
|
|||||||
|
|
||||||
```
|
```
|
||||||
$ go version
|
$ go version
|
||||||
go version go1.16.4 darwin/amd64
|
go version go1.19.1 darwin/amd64
|
||||||
```
|
```
|
||||||
|
|
||||||
The version should be at least 1.15.
|
The version should be at least 1.18.
|
||||||
|
|
||||||
pgx also requires a PostgreSQL database that is accessible from your host. Use `psql` to test your connection.
|
pgx also requires a PostgreSQL database that is accessible from your host. Use `psql` to test your connection.
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ $ psql
|
|||||||
Timing is on.
|
Timing is on.
|
||||||
Null display is "∅".
|
Null display is "∅".
|
||||||
Line style is unicode.
|
Line style is unicode.
|
||||||
psql (12.3)
|
psql (14.5 (Homebrew))
|
||||||
Type "help" for help.
|
Type "help" for help.
|
||||||
|
|
||||||
jack@[local]:5432 jack=#
|
jack@[local]:5432 jack=#
|
||||||
@ -47,8 +47,8 @@ go: creating new go.mod: module hello
|
|||||||
Add pgx to your Go modules:
|
Add pgx to your Go modules:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ go get github.com/jackc/pgx/v4
|
$ go get github.com/jackc/pgx/v5
|
||||||
go get: added github.com/jackc/pgx/v4 v4.11.0
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Hello world from PostgreSQL
|
## Hello world from PostgreSQL
|
||||||
@ -98,7 +98,13 @@ Hello, world!
|
|||||||
|
|
||||||
## Using a Connection Pool
|
## Using a Connection Pool
|
||||||
|
|
||||||
The `*pgx.Conn` returned by `pgx.Connect()` represents a single connection and is not concurrency safe. This is entirely appropriate for a simple command line example such as above. However, for many uses, such as a web application server, concurrency is required. To use a connection pool replace the import `github.com/jackc/pgx/v4` with `github.com/jackc/pgx/v4/pgxpool` and connect with `pgxpool.Connect()` instead of `pgx.Connect()`.
|
The `*pgx.Conn` returned by `pgx.Connect()` represents a single connection and is not concurrency safe. This is entirely appropriate for a simple command line example such as above. However, for many uses, such as a web application server, concurrency is required. To use a connection pool replace the import `github.com/jackc/pgx/v5` with `github.com/jackc/pgx/v5/pgxpool` and connect with `pgxpool.Connect()` instead of `pgx.Connect()`.
|
||||||
|
|
||||||
|
You may need to run `go get` for the `pgxpool` package.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ go get github.com/jackc/pgx/v5/pgxpool
|
||||||
|
```
|
||||||
|
|
||||||
Here is the same program using the connection pool.
|
Here is the same program using the connection pool.
|
||||||
|
|
||||||
@ -110,13 +116,13 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/jackc/pgx/v4/pgxpool"
|
"github.com/jackc/pgx/v5/pgxpool"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
dbpool, err := pgxpool.Connect(context.Background(), os.Getenv("DATABASE_URL"))
|
dbpool, err := pgxpool.New(context.Background(), os.Getenv("DATABASE_URL"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
|
fmt.Fprintf(os.Stderr, "Unable to create connection pool: %v\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
defer dbpool.Close()
|
defer dbpool.Close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user