func TestParseURI(t *testing.T) { t.Parallel() tests := []struct { url string connParams pgx.ConnConfig }{ { url: "postgres://*****:*****@localhost:5432/mydb", connParams: pgx.ConnConfig{ User: "******", Password: "******", Host: "localhost", Port: 5432, Database: "mydb", }, }, { url: "postgresql://*****:*****@localhost:5432/mydb", connParams: pgx.ConnConfig{ User: "******", Password: "******", Host: "localhost", Port: 5432, Database: "mydb", }, }, { url: "postgres://jack@localhost:5432/mydb", connParams: pgx.ConnConfig{ User: "******", Host: "localhost", Port: 5432, Database: "mydb", }, }, { url: "postgres://jack@localhost/mydb", connParams: pgx.ConnConfig{ User: "******", Host: "localhost", Database: "mydb", }, }, } for i, tt := range tests { connParams, err := pgx.ParseURI(tt.url) if err != nil { t.Errorf("%d. Unexpected error from pgx.ParseURL(%q) => %v", i, tt.url, err) continue } if !reflect.DeepEqual(connParams, tt.connParams) { t.Errorf("%d. expected %#v got %#v", i, tt.connParams, connParams) } } }
func main() { dbConfig, err := pgx.ParseURI(os.Getenv("DATABASE_URL")) if err != nil { log.Fatal(err) } db, err := pgx.NewConnPool(pgx.ConnPoolConfig{ConnConfig: dbConfig}) if err != nil { log.Fatal(err) } log.Fatal(http.ListenAndServe(":"+os.Getenv("PORT"), NewServer(os.Getenv("URL"), NewPostgresBackend(db)))) }
func (d *Driver) Open(name string) (driver.Conn, error) { if d.Pool != nil { conn, err := d.Pool.Acquire() if err != nil { return nil, err } return &Conn{conn: conn, pool: d.Pool}, nil } connConfig, err := pgx.ParseURI(name) if err != nil { return nil, err } conn, err := pgx.Connect(connConfig) if err != nil { return nil, err } c := &Conn{conn: conn} return c, nil }