diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 223ef8b2..5430fd02 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -345,8 +345,10 @@ class Config: self.supported_games[game.game_name] = game # s_dbs = doc.getElementsByTagName("supported_databases") - if dbname and dbname in self.supported_databases: - self.db_selected = dbname + # select database from those defined in config by: + # 1) command line option + # or 2) selected="True" in config element + # or 3) just choose the first we come across for db_node in doc.getElementsByTagName("database"): try: db = Database(node = db_node) @@ -360,6 +362,9 @@ class Config: self.db_selected = db.db_name except: raise + if dbname and dbname in self.supported_databases: + self.db_selected = dbname + # s_dbs = doc.getElementsByTagName("mucked_windows") for aw_node in doc.getElementsByTagName("aw"): diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index 4b8d0591..731fa67d 100755 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -208,6 +208,7 @@ class Database: if self.backend == self.SQLITE and db_params['db-databaseName'] == ':memory:' and self.fdb.wrongDbVersion: log.info("sqlite/:memory: - creating") self.recreate_tables() + self.fdb.wrongDbVersion = False self.pcache = None # PlayerId cache self.cachemiss = 0 # Delete me later - using to count player cache misses diff --git a/pyfpdb/fpdb_db.py b/pyfpdb/fpdb_db.py index 58508f5c..1e74865e 100644 --- a/pyfpdb/fpdb_db.py +++ b/pyfpdb/fpdb_db.py @@ -137,7 +137,7 @@ class fpdb_db: print "outdated or too new database version - please recreate tables" self.wrongDbVersion=True except:# _mysql_exceptions.ProgrammingError: - print "failed to read settings table - please recreate tables" + if database != ":memory:": print "failed to read settings table - please recreate tables" self.wrongDbVersion=True #end def connect