From 3dc28c7291bcb4af8b2aca7e270baf7746b8c7eb Mon Sep 17 00:00:00 2001 From: sbwalker Date: Thu, 4 Jan 2024 16:40:15 -0500 Subject: [PATCH] Fix #3604 - display message if user is attempting to run the application prior to performing a full compilation --- .../Infrastructure/DatabaseManager.cs | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/Oqtane.Server/Infrastructure/DatabaseManager.cs b/Oqtane.Server/Infrastructure/DatabaseManager.cs index 01138129..5d24dd9f 100644 --- a/Oqtane.Server/Infrastructure/DatabaseManager.cs +++ b/Oqtane.Server/Infrastructure/DatabaseManager.cs @@ -216,19 +216,27 @@ namespace Oqtane.Infrastructure // get database type var type = Type.GetType(databaseType); - // create database object from type - var database = Activator.CreateInstance(type) as IDatabase; - - // create data directory if does not exist - var dataDirectory = AppDomain.CurrentDomain.GetData(Constants.DataDirectory)?.ToString(); - if (!Directory.Exists(dataDirectory)) Directory.CreateDirectory(dataDirectory ?? String.Empty); - - var dbOptions = new DbContextOptionsBuilder().UseOqtaneDatabase(database, NormalizeConnectionString(install.ConnectionString)).Options; - using (var dbc = new DbContext(dbOptions)) + if (type != null) { - // create empty database if it does not exist - dbc.Database.EnsureCreated(); - result.Success = true; + // create database object from type + var database = Activator.CreateInstance(type) as IDatabase; + + // create data directory if does not exist + var dataDirectory = AppDomain.CurrentDomain.GetData(Constants.DataDirectory)?.ToString(); + if (!Directory.Exists(dataDirectory)) Directory.CreateDirectory(dataDirectory ?? String.Empty); + + var dbOptions = new DbContextOptionsBuilder().UseOqtaneDatabase(database, NormalizeConnectionString(install.ConnectionString)).Options; + using (var dbc = new DbContext(dbOptions)) + { + // create empty database if it does not exist + dbc.Database.EnsureCreated(); + result.Success = true; + } + } + else + { + result.Message = $"The Database Provider {databaseType} Does Not Exist. If This Is A Development Environment Please Ensure You Have Performed A Full Compilation Of All Projects In The Oqtane Solution Prior To Running The Application."; + _filelogger.LogError(Utilities.LogMessage(this, result.Message)); } } catch (Exception ex)