top | item 40187157

(no title)

stavepan | 1 year ago

Can you suggest to me one way for an API service to wait for a database to accept connections to run the database migrations without the API depending on the liveness of the database to start up?

discuss

order

liampulles|1 year ago

I think the pragmatic answer is you should wait for your database to be live before starting up. One just wants to lean on the side of depending on a few critical services rather than all potentially-utlizied application services.

ivan_gammel|1 year ago

Start the server and respond 503 every time when your database and other dependencies are not ready. Couldn’t be easier.

stavepan|1 year ago

Many people have the following setup in docker-compose.yml file.

version: '3' services: mysql: image: mysql:8.0

  app:
    build: .
    command: is_ready --timeout 10 --addr mysql:3306 -- <run migrations command>
For cases like this, returning 503 every time the database is not ready, is not very convenient.