Re: pg_isready features - Mailing list pgsql-hackers

From Jimmy
Subject Re: pg_isready features
Date
Msg-id CAE0GdZW+SfCM3z2yx-GqBc9r3pDYPCXCn+PD=5-fKwAjp1gnMg@mail.gmail.com
Whole thread Raw
In response to Re: pg_isready features  (Imre Samu <pella.samu@gmail.com>)
List pgsql-hackers
yup, it does for (1) 

:-)





On Wed, Jun 15, 2016 at 9:53 AM Imre Samu <pella.samu@gmail.com> wrote:
>Why I need it? There is tiny window between postgres being ready to accept connections
>and final scripts which create initial user/database.
>Ideally having option to say "postgres is ready after specific user can login to specific database" would be ideal.

temporary - the official docker-postgres solution is not OK?  
# internal start of server in order to allow set-up using psql-client
# does not listen on external TCP/IP and waits until start finishes
gosu postgres pg_ctl -D "$PGDATA" -o "-c listen_addresses='localhost'" 
.....

2016-06-15 18:09 GMT+02:00 Jimmy <jimmyjack@gmail.com>:
Not sure if this was discussed in the past and decided it does not belong to pg_isready utility....

I am using pg_isready in dockerized development environment as part of docker-compose. Simply say I have POSTGRES container and APP container. I use pg_isready inside app container and wait till postgres is ready to accept connections before app starts.

There are two features which would make this a bit smoother and better.


1. enforce login
This could be optional and turned off by default. Basically if user supplies username/database as part of pg_isready call and the login fails (for whatever reason), pg_isready should fail. 

Why I need it? There is tiny window between postgres being ready to accept connections and final scripts which create initial user/database. Ideally having option to say "postgres is ready after specific user can login to specific database" would be ideal. Again, this can be optional and turned off by default.


2. retry
This is something I can do via unix script, but ideally it would be nice if there would be retry mechanism. For example if I say retry=30 then pg_isready would try 30x with x seconds pause in between and fail only after 30 retries. This could use default retry=0 (current behavior)


thanks a lot!



pgsql-hackers by date:

Previous
From: Teodor Sigaev
Date:
Subject: Re: Should phraseto_tsquery('simple', 'blue blue') @@ to_tsvector('simple', 'blue') be true ?
Next
From: Kevin Grittner
Date:
Subject: Re: Re: [COMMITTERS] pgsql: Avoid extra locks in GetSnapshotData if old_snapshot_threshold <