From fbf675e86fa495caddf495758b36bea32b0fd0e2 Mon Sep 17 00:00:00 2001 From: David Trattnig <david@subsquare.at> Date: Fri, 21 Jan 2022 12:59:55 +0100 Subject: [PATCH] SQLite config option as in engine. engine#89 --- .../sample/sample-development.engine-api.ini | 2 +- config/sample/sample-docker.engine-api.ini | 2 +- .../sample/sample-production.engine-api.ini | 2 +- src/base/config.py | 20 +++++++++++-------- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/config/sample/sample-development.engine-api.ini b/config/sample/sample-development.engine-api.ini index 29ac700..d06a5aa 100644 --- a/config/sample/sample-development.engine-api.ini +++ b/config/sample/sample-development.engine-api.ini @@ -5,7 +5,7 @@ [database] -# Use 'postgresql' or 'mysql' +# Use 'postgresql', 'sqlite' or 'mysql'. In case of SQLite the "db_name" is the name of the file. db_type="postgresql" db_name="aura_engine_api" db_user="aura_engine_api" diff --git a/config/sample/sample-docker.engine-api.ini b/config/sample/sample-docker.engine-api.ini index e4839d5..4eff0a3 100644 --- a/config/sample/sample-docker.engine-api.ini +++ b/config/sample/sample-docker.engine-api.ini @@ -5,7 +5,7 @@ [database] -# Use 'postgresql' or 'mysql' +# Use 'postgresql', 'sqlite' or 'mysql'. In case of SQLite the "db_name" is the name of the file. db_type="postgresql" db_name="aura_engine_api" db_user="aura_engine_api" diff --git a/config/sample/sample-production.engine-api.ini b/config/sample/sample-production.engine-api.ini index 09d1c39..9810dc4 100644 --- a/config/sample/sample-production.engine-api.ini +++ b/config/sample/sample-production.engine-api.ini @@ -5,7 +5,7 @@ [database] -# Use 'postgresql' or 'mysql' +# Use 'postgresql', 'sqlite' or 'mysql'. In case of SQLite the "db_name" is the name of the file. db_type="postgresql" db_name="aura_engine_api" db_user="aura_engine_api" diff --git a/src/base/config.py b/src/base/config.py index e6a1d77..303078a 100644 --- a/src/base/config.py +++ b/src/base/config.py @@ -148,14 +148,18 @@ 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}.db" else: return f"Error: invalid database type '{db_type}'" \ No newline at end of file -- GitLab