From da7454e98713ef00336e09896a61101ba28fd2c7 Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Tue, 26 Aug 2025 19:54:19 +0200 Subject: [PATCH] Ensure the directory exists before creating the SQLite database (#19980) Ensure the directory exists before creating the SQLite database. --- .../Services/SqliteDatabaseCreator.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Umbraco.Cms.Persistence.Sqlite/Services/SqliteDatabaseCreator.cs b/src/Umbraco.Cms.Persistence.Sqlite/Services/SqliteDatabaseCreator.cs index c666547c1d..348846d3b1 100644 --- a/src/Umbraco.Cms.Persistence.Sqlite/Services/SqliteDatabaseCreator.cs +++ b/src/Umbraco.Cms.Persistence.Sqlite/Services/SqliteDatabaseCreator.cs @@ -86,6 +86,7 @@ public class SqliteDatabaseCreator : IDatabaseCreator // Copy our blank(ish) wal mode sqlite database to its final location. try { + EnsureDatabaseDirectory(original.DataSource); File.Copy(tempFile, original.DataSource, true); } catch (Exception ex) @@ -104,4 +105,13 @@ public class SqliteDatabaseCreator : IDatabaseCreator _logger.LogWarning(ex, "Unable to cleanup temporary sqlite database file {path}", tempFile); } } + + private static void EnsureDatabaseDirectory(string dataSource) + { + var directoryPath = Path.GetDirectoryName(dataSource); + if (string.IsNullOrEmpty(directoryPath) is false && Directory.Exists(directoryPath) is false) + { + Directory.CreateDirectory(directoryPath); + } + } }