diff --git a/config/sample/sample-development.engine-api.ini b/config/sample/sample-development.engine-api.ini index 29ac7003cbd94d668c91344879f6b10acb3ece75..d06a5aa0eadfbaf9d9d5d328ea6d00d2be837dc3 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 e4839d5cf84196d02b29bd866927dec6b43da2a1..4eff0a344b3e276ab7760084ca5ffe67dec271de 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 09d1c39a2f905284e5ce3ea505079a8b0853b969..9810dc4a21cb615d21c4a0d83544365778756c73 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 e6a1d77891c00898e4a4f05c34574e04909bde11..303078ae3ff660e37aa9bbc38c27a93926cc9add 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