]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- try to get PG database create to be more reliable
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 21 Aug 2017 21:55:26 +0000 (17:55 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 21 Aug 2017 21:55:26 +0000 (17:55 -0400)
Change-Id: I9c9d101547f4484af447db924dc06afd0392a03e

lib/sqlalchemy/testing/provision.py

index ae82a2e890baef46792b521049ef88d541f27e33..7ea6a569cd0c59b43d98abd57ed9ccc987a603c0 100644 (file)
@@ -167,7 +167,7 @@ def _pg_create_db(cfg, eng, ident):
         except Exception:
             pass
         currentdb = conn.scalar("select current_database()")
-        for attempt in range(3):
+        for attempt in range(10):
             try:
                 conn.execute(
                     "CREATE DATABASE %s TEMPLATE %s" % (ident, currentdb))
@@ -178,6 +178,15 @@ def _pg_create_db(cfg, eng, ident):
                 else:
                     raise
             else:
+                time.sleep(.5)
+                result = conn.execute(
+                    "SELECT datname FROM pg_database "
+                    "where datname=%s" % ident)
+                row = result.first()
+                if not row:
+                    raise Exception(
+                        "Database named %s did not get "
+                        "created, in engine %r" % (ident, eng.url))
                 break