Created
November 18, 2024 19:51
-
-
Save coffeegoddd/afc37b7bcb0e422fa8098f3dd99195f3 to your computer and use it in GitHub Desktop.
doltgres/postgres dsn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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