From 4be27c447fdb7a72ce87555305be6fd376692d02 Mon Sep 17 00:00:00 2001 From: Micah Parks <66095735+MicahParks@users.noreply.github.com> Date: Fri, 12 Jan 2024 22:56:05 -0500 Subject: [PATCH] Fix Postgres pool retry (#8) --- docker-compose.override.yml | 9 --------- docker-compose.quickstart.yml | 11 ----------- docker-compose.yml | 14 ++++++++++++-- storage/postgres/setup.go | 7 +++++-- 4 files changed, 17 insertions(+), 24 deletions(-) delete mode 100644 docker-compose.override.yml delete mode 100644 docker-compose.quickstart.yml diff --git a/docker-compose.override.yml b/docker-compose.override.yml deleted file mode 100644 index 2c5f434..0000000 --- a/docker-compose.override.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: "3" -services: - mldpostgres: - image: "postgres:15" - container_name: "mldpostgres" - environment: - POSTGRES_PASSWORD: "password" - volumes: - - "./storage/postgres/startup.sql:/docker-entrypoint-initdb.d/startup.sql" diff --git a/docker-compose.quickstart.yml b/docker-compose.quickstart.yml deleted file mode 100644 index 1c8868e..0000000 --- a/docker-compose.quickstart.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" -services: - magiclinksdev: - container_name: "magiclinksdev" - image: "micahparks/magiclinksdevnop" - ports: - - "8080:8080" - volumes: - - "./config.quickstart.json:/config.json" - depends_on: - - "mldpostgres" diff --git a/docker-compose.yml b/docker-compose.yml index ea182d2..a5d679a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,16 @@ -version: "3" -# This file is meant for local development with the Postgres service. See the docker-compose.override.yml file. +version: "3.8" services: + magiclinksdev: + image: "micahparks/magiclinksdevnop" + ports: + - "8080:8080" + volumes: + - "./config.quickstart.json:/config.json" mldpostgres: + image: "postgres:15" + environment: + POSTGRES_PASSWORD: "password" ports: - "5432:5432" + volumes: + - "./storage/postgres/startup.sql:/docker-entrypoint-initdb.d/startup.sql" diff --git a/storage/postgres/setup.go b/storage/postgres/setup.go index 293be2f..972f5b8 100644 --- a/storage/postgres/setup.go +++ b/storage/postgres/setup.go @@ -135,10 +135,13 @@ func pool(ctx context.Context, config Config) (*pgxpool.Pool, error) { c.MaxConnIdleTime = config.MaxIdle.Get() c.MinConns = config.MinConns - var conn *pgxpool.Pool + conn, err := pgxpool.NewWithConfig(ctx, c) + if err != nil { + return nil, fmt.Errorf("failed to create database connection pool: %w", err) + } const retries = 5 for i := 0; i < retries; i++ { - conn, err = pgxpool.NewWithConfig(ctx, c) + err = conn.Ping(ctx) if err != nil { select { case <-ctx.Done():