improve solution related to module installation issue where ModuleDefinition Version property was not being populated correctly (#3175)

This commit is contained in:
sbwalker 2023-08-28 15:20:09 -04:00
parent a857e3f31e
commit d47175df8a

View File

@ -138,14 +138,21 @@ namespace Oqtane.Repository
// sync module assemblies with database // sync module assemblies with database
foreach (ModuleDefinition ModuleDefinition in ModuleDefinitions) foreach (ModuleDefinition ModuleDefinition in ModuleDefinitions)
{ {
// manage releaseversions in cases where it was not provided or is lower than the module version
if (string.IsNullOrEmpty(ModuleDefinition.ReleaseVersions) || (!string.IsNullOrEmpty(ModuleDefinition.Version) && Version.Parse(ModuleDefinition.Version).CompareTo(Version.Parse(ModuleDefinition.ReleaseVersions.Split(',').Last())) > 0))
{
ModuleDefinition.ReleaseVersions = ModuleDefinition.Version;
}
ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == ModuleDefinition.ModuleDefinitionName).FirstOrDefault(); ModuleDefinition moduledefinition = moduledefinitions.Where(item => item.ModuleDefinitionName == ModuleDefinition.ModuleDefinitionName).FirstOrDefault();
if (moduledefinition == null) if (moduledefinition == null)
{ {
// new module definition // new module definition (version is explicitly not set because it is updated as part of module migrations at startup)
moduledefinition = new ModuleDefinition { ModuleDefinitionName = ModuleDefinition.ModuleDefinitionName, Version = ModuleDefinition.Version }; moduledefinition = new ModuleDefinition { ModuleDefinitionName = ModuleDefinition.ModuleDefinitionName };
_db.ModuleDefinition.Add(moduledefinition); _db.ModuleDefinition.Add(moduledefinition);
_db.SaveChanges(); _db.SaveChanges();
ModuleDefinition.Version = ""; // ensure migrations are executed during startup for new module installations ModuleDefinition.Version = "";
} }
else else
{ {
@ -158,12 +165,6 @@ namespace Oqtane.Repository
moduledefinitions.Remove(moduledefinition); moduledefinitions.Remove(moduledefinition);
} }
// manage releaseversions in cases where it was not provided or is lower than the module version
if (string.IsNullOrEmpty(ModuleDefinition.ReleaseVersions) || (!string.IsNullOrEmpty(ModuleDefinition.Version) && Version.Parse(ModuleDefinition.Version).CompareTo(Version.Parse(ModuleDefinition.ReleaseVersions.Split(',').Last())) > 0))
{
ModuleDefinition.ReleaseVersions = ModuleDefinition.Version;
}
// load db properties // load db properties
ModuleDefinition.ModuleDefinitionId = moduledefinition.ModuleDefinitionId; ModuleDefinition.ModuleDefinitionId = moduledefinition.ModuleDefinitionId;
ModuleDefinition.CreatedBy = moduledefinition.CreatedBy; ModuleDefinition.CreatedBy = moduledefinition.CreatedBy;