diff --git a/src/base/config.py b/src/base/config.py index 52056e654bd75d19a3a414a09018627f9906a2a7..cace94ba78fcbbc0de5f52b21b0101672a1250d6 100644 --- a/src/base/config.py +++ b/src/base/config.py @@ -108,15 +108,19 @@ class AuraConfig: Retrieves the database connection string. """ db_name = str(self.get("db_name")) - db_user = str(self.get("db_user")) - db_pass = str(self.get("db_pass")) - db_host = str(self.get("db_host")) db_type = str(self.get("db_type")) - db_charset = self.get("db_charset", "utf8") - if db_type == "mysql": - return "mysql://" + db_user + ":" + db_pass + "@" + db_host + "/" + db_name + "?charset=" + db_charset - elif db_type == "postgresql": - return f"postgresql+psycopg2://{db_user}:{db_pass}@{db_host}/{db_name}?client_encoding={db_charset}" + if db_type in {"mysql", "postgresql"}: + db_user = str(self.get("db_user")) + db_pass = str(self.get("db_pass")) + db_host = str(self.get("db_host")) + db_charset = self.get("db_charset", "utf8") + if db_type == "mysql": + return f"mysql://{db_user}:{db_pass}@{db_host}/{db_name}?charset={db_charset}" + else: + return f"postgresql+psycopg2://{db_user}:{db_pass}@{db_host}/{db_name}?client_encoding={db_charset}" + elif db_type == "sqlite": + # "db_name" is expected to be either a relative or an absolute path to the sqlite file + return f"sqlite:///{db_name}" else: return f"Error: invalid database type '{db_type}'"