From d702b2f616dddbd064673bae293825fa77434c2f Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Fri, 17 Sep 2021 13:10:21 +0200 Subject: [PATCH] Fix non-Windows database configuration install step --- src/Umbraco.Core/Install/Models/DatabaseModel.cs | 8 +------- .../Install/InstallSteps/DatabaseConfigureStep.cs | 11 +++++++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Core/Install/Models/DatabaseModel.cs b/src/Umbraco.Core/Install/Models/DatabaseModel.cs index 514500f445..b87941e590 100644 --- a/src/Umbraco.Core/Install/Models/DatabaseModel.cs +++ b/src/Umbraco.Core/Install/Models/DatabaseModel.cs @@ -5,14 +5,8 @@ namespace Umbraco.Cms.Core.Install.Models [DataContract(Name = "database", Namespace = "")] public class DatabaseModel { - public DatabaseModel() - { - //defaults - DatabaseType = DatabaseType.SqlLocalDb; - } - [DataMember(Name = "dbType")] - public DatabaseType DatabaseType { get; set; } + public DatabaseType DatabaseType { get; set; } = DatabaseType.SqlServer; [DataMember(Name = "server")] public string Server { get; set; } diff --git a/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs b/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs index a14b0f3a1c..a25151bda2 100644 --- a/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs +++ b/src/Umbraco.Infrastructure/Install/InstallSteps/DatabaseConfigureStep.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.InteropServices; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -34,6 +35,15 @@ namespace Umbraco.Cms.Infrastructure.Install.InstallSteps if (database == null) { database = new DatabaseModel(); + + if (IsLocalDbAvailable()) + { + database.DatabaseType = DatabaseType.SqlLocalDb; + } + else if (IsSqlCeAvailable()) + { + database.DatabaseType = DatabaseType.SqlCe; + } } if (_databaseBuilder.CanConnect(database.DatabaseType.ToString(), database.ConnectionString, database.Server, database.DatabaseName, database.Login, database.Password, database.IntegratedAuth) == false) @@ -108,6 +118,7 @@ namespace Umbraco.Cms.Infrastructure.Install.InstallSteps // NOTE: Type.GetType will only return types that are currently loaded into the appdomain. In this case // that is ok because we know if this is availalbe we will have manually loaded it into the appdomain. // Else we'd have to use Assembly.LoadFrom and need to know the DLL location here which we don't need to do. + RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && !(Type.GetType("Umbraco.Cms.Persistence.SqlCe.SqlCeSyntaxProvider, Umbraco.Persistence.SqlCe") is null); public override string View => ShouldDisplayView() ? base.View : "";