From 65894186b311cbcdf20598ff70e0148d3662c2ff Mon Sep 17 00:00:00 2001 From: Pierre Tardy Date: Thu, 26 Feb 2015 20:55:12 +0100 Subject: [PATCH] fix no such table test to work with mysql and pg Signed-off-by: Pierre Tardy --- master/buildbot/db/dbconfig.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/master/buildbot/db/dbconfig.py b/master/buildbot/db/dbconfig.py index 8246c928d3f..92b95e838fc 100644 --- a/master/buildbot/db/dbconfig.py +++ b/master/buildbot/db/dbconfig.py @@ -18,6 +18,7 @@ from buildbot.db import model from buildbot.db import state from sqlalchemy.exc import OperationalError +from sqlalchemy.exc import ProgrammingError class FakeDBConnector(object): @@ -61,12 +62,11 @@ def getDb(self): db.state = state.StateConnectorComponent(db) try: self.objectid = db.state.thdGetObjectId(db_engine, self.name, "DbConfig")['id'] - except OperationalError as e: - if "no such table" in str(e): - db.pool.engine.close() - return None - else: - raise + except (ProgrammingError, OperationalError): + # ProgrammingError: mysql&pg, OperationalError: sqlite + # assume db is not initialized + db.pool.engine.close() + return None return db def get(self, name, default=state.StateConnectorComponent.Thunk):