Fix non-Windows database configuration install step

This commit is contained in:
Ronald Barendse
2021-09-17 13:10:21 +02:00
parent 51002ba7a4
commit d702b2f616
2 changed files with 12 additions and 7 deletions

View File

@@ -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; }

View File

@@ -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 : "";