def wait_for_postgres()

in run_goose.py [0:0]


def wait_for_postgres(db_connection_string: str, timeout_seconds: int):
    deadline = time.time() + timeout_seconds
    while True:
        try:
            conn = psycopg2.connect(db_connection_string)
            conn.close()
            return
        except psycopg2.OperationalError as e:
            if time.time() < deadline:
                print(f"Failed to connect to postgres ({e}), sleeping", file=sys.stderr)
                time.sleep(.5)
            else:
                raise