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