Skip to content

Instantly share code, notes, and snippets.

@coffeegoddd
Created November 18, 2024 19:51
Show Gist options
  • Select an option

  • Save coffeegoddd/afc37b7bcb0e422fa8098f3dd99195f3 to your computer and use it in GitHub Desktop.

Select an option

Save coffeegoddd/afc37b7bcb0e422fa8098f3dd99195f3 to your computer and use it in GitHub Desktop.
doltgres/postgres dsn
package main
import (
"context"
"database/sql"
"flag"
"fmt"
_ "github.com/lib/pq"
)
var doltgres = flag.Bool("doltgres", false, "connect to doltgres")
func main() {
flag.Parse()
host := "127.0.0.1"
port := 5432
user := "postgres"
dbName := "postgres"
password := ""
driver := "postgres"
if *doltgres {
port = 4433
password = "password"
}
//postgresWorksDsn := fmt.Sprintf("sslmode=disable host=%s port=%d dbname=%s password=%s", host, port, dbName, password)
doltgresWorksDsn := fmt.Sprintf("sslmode=disable host=%s port=%d user=%s dbname=%s password=%s", host, port, user, dbName, password)
err := queryDB(context.Background(), driver, doltgresWorksDsn)
if err != nil {
panic(err)
}
}
func queryDB(ctx context.Context, driver, dsn string) (err error) {
var db *sql.DB
db, err = sql.Open(driver, dsn)
if err != nil {
return
}
defer func() {
rerr := db.Close()
if err == nil {
err = rerr
}
}()
err = db.PingContext(ctx)
if err != nil {
return
}
var rows *sql.Rows
rows, err = db.QueryContext(ctx, "SELECT datname FROM pg_database;")
if err != nil {
return
}
defer func() {
rerr := rows.Close()
if rerr != nil {
err = rerr
}
}()
dbs := make([]string, 0)
for rows.Next() {
var name string
err = rows.Scan(&name)
if err != nil {
return
}
dbs = append(dbs, name)
}
for _, name := range dbs {
fmt.Println("found db:", name)
}
err = rows.Err()
return
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment