From fbbc78619e2e95e377d626b488b5ec668d2b8b89 Mon Sep 17 00:00:00 2001 From: gpatel-fr <44170243+gpatel-fr@users.noreply.github.com> Date: Sun, 19 Mar 2023 00:48:10 +0100 Subject: [PATCH] add custom sqlite pragmas through environment variable CUSTOMSQLITEOPTIONS_DUPLICATI --- .../Library/SQLiteHelper/SQLiteLoader.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Duplicati/Library/SQLiteHelper/SQLiteLoader.cs b/Duplicati/Library/SQLiteHelper/SQLiteLoader.cs index 4a752af16..6800e2935 100644 --- a/Duplicati/Library/SQLiteHelper/SQLiteLoader.cs +++ b/Duplicati/Library/SQLiteHelper/SQLiteLoader.cs @@ -142,6 +142,29 @@ namespace Duplicati.Library.SQLiteHelper throw; } + + // set custom Sqlite options + var opts = Environment.GetEnvironmentVariable("CUSTOMSQLITEOPTIONS_DUPLICATI"); + if (opts != null) { + var topts = opts.Split(new char[]{';'}, StringSplitOptions.RemoveEmptyEntries); + if (topts.Length > 0) { + using (var cmd = con.CreateCommand()) { + foreach (var opt in topts) { + Logging.Log.WriteVerboseMessage(LOGTAG, "CustomSQLiteOption", @"Setting custom SQLite option '{0}'.", opt); + try + { + cmd.CommandText = string.Format("pragma {0}", opt); + cmd.ExecuteNonQuery(); + } + catch (Exception ex) + { + Logging.Log.WriteErrorMessage(LOGTAG, "CustomSQLiteOption", ex, @"Error setting custom SQLite option '{0}'.", opt); + } + } + } + } + } + return con; }