From 428560356369c04d5dcf4d5ff0bf8741fd44bae4 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Sun, 14 Jun 2020 13:06:33 -0400 Subject: [PATCH] migrate script naming convention --- .../Infrastructure/DatabaseManager.cs | 24 +++++++++++++++---- Oqtane.Server/Oqtane.Server.csproj | 18 +++++++------- Oqtane.Server/Scripts/Master.00.00.00.00.sql | 10 ++++++++ ...aster.0.9.0.sql => Master.00.09.00.00.sql} | 0 ...aster.1.0.1.sql => Master.01.00.01.00.sql} | 0 Oqtane.Server/Scripts/Tenant.00.00.00.00.sql | 14 +++++++++++ ...enant.0.9.0.sql => Tenant.00.09.00.00.sql} | 0 ...enant.0.9.1.sql => Tenant.00.09.01.00.sql} | 0 ...enant.0.9.2.sql => Tenant.00.09.02.00.sql} | 0 ...enant.1.0.1.sql => Tenant.01.00.01.00.sql} | 0 10 files changed, 52 insertions(+), 14 deletions(-) create mode 100644 Oqtane.Server/Scripts/Master.00.00.00.00.sql rename Oqtane.Server/Scripts/{Master.0.9.0.sql => Master.00.09.00.00.sql} (100%) rename Oqtane.Server/Scripts/{Master.1.0.1.sql => Master.01.00.01.00.sql} (100%) create mode 100644 Oqtane.Server/Scripts/Tenant.00.00.00.00.sql rename Oqtane.Server/Scripts/{Tenant.0.9.0.sql => Tenant.00.09.00.00.sql} (100%) rename Oqtane.Server/Scripts/{Tenant.0.9.1.sql => Tenant.00.09.01.00.sql} (100%) rename Oqtane.Server/Scripts/{Tenant.0.9.2.sql => Tenant.00.09.02.00.sql} (100%) rename Oqtane.Server/Scripts/{Tenant.1.0.1.sql => Tenant.01.00.01.00.sql} (100%) diff --git a/Oqtane.Server/Infrastructure/DatabaseManager.cs b/Oqtane.Server/Infrastructure/DatabaseManager.cs index 6c3d50e1..7a7cff0d 100644 --- a/Oqtane.Server/Infrastructure/DatabaseManager.cs +++ b/Oqtane.Server/Infrastructure/DatabaseManager.cs @@ -194,10 +194,12 @@ namespace Oqtane.Infrastructure if (install.TenantName == Constants.MasterTenant) { + MigrateScriptNamingConvention("Master", install.ConnectionString); + var upgradeConfig = DeployChanges - .To - .SqlDatabase(NormalizeConnectionString(install.ConnectionString)) - .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly(), s => s.Contains("Master.") && s.EndsWith(".sql",StringComparison.OrdinalIgnoreCase)); + .To + .SqlDatabase(NormalizeConnectionString(install.ConnectionString)) + .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly(), s => s.Contains("Master.") && s.EndsWith(".sql",StringComparison.OrdinalIgnoreCase)); var upgrade = upgradeConfig.Build(); if (upgrade.IsUpgradeRequired()) @@ -285,6 +287,8 @@ namespace Oqtane.Infrastructure { foreach (var tenant in db.Tenant.ToList()) { + MigrateScriptNamingConvention("Tenant", tenant.DBConnectionString); + var upgradeConfig = DeployChanges.To.SqlDatabase(NormalizeConnectionString(tenant.DBConnectionString)) .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly(), s => s.Contains("Tenant.") && s.EndsWith(".sql", StringComparison.OrdinalIgnoreCase)); @@ -568,6 +572,18 @@ namespace Oqtane.Infrastructure if (string.IsNullOrEmpty(value)) value = defaultValue; return value; } - + + private void MigrateScriptNamingConvention(string scriptType, string connectionString) + { + // migrate to new naming convention for scripts + var migrateConfig = DeployChanges.To.SqlDatabase(NormalizeConnectionString(connectionString)) + .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly(), s => s == scriptType + ".00.00.00.00.sql"); + var migrate = migrateConfig.Build(); + if (migrate.IsUpgradeRequired()) + { + migrate.PerformUpgrade(); + } + } + } } diff --git a/Oqtane.Server/Oqtane.Server.csproj b/Oqtane.Server/Oqtane.Server.csproj index dae3eed2..0db9ece5 100644 --- a/Oqtane.Server/Oqtane.Server.csproj +++ b/Oqtane.Server/Oqtane.Server.csproj @@ -23,16 +23,14 @@ - - - - - - - - - - + + + + + + + + diff --git a/Oqtane.Server/Scripts/Master.00.00.00.00.sql b/Oqtane.Server/Scripts/Master.00.00.00.00.sql new file mode 100644 index 00000000..e94cd112 --- /dev/null +++ b/Oqtane.Server/Scripts/Master.00.00.00.00.sql @@ -0,0 +1,10 @@ +/* + +migrate to new naming convention for scripts + +*/ + +UPDATE [dbo].[SchemaVersions] SET ScriptName = 'Oqtane.Scripts.Master.00.09.00.00.sql' WHERE ScriptName = 'Oqtane.Scripts.Master.0.9.0.sql' +GO +UPDATE [dbo].[SchemaVersions] SET ScriptName = 'Oqtane.Scripts.Master.01.00.01.00.sql' WHERE ScriptName = 'Oqtane.Scripts.Master.1.0.1.sql' +GO \ No newline at end of file diff --git a/Oqtane.Server/Scripts/Master.0.9.0.sql b/Oqtane.Server/Scripts/Master.00.09.00.00.sql similarity index 100% rename from Oqtane.Server/Scripts/Master.0.9.0.sql rename to Oqtane.Server/Scripts/Master.00.09.00.00.sql diff --git a/Oqtane.Server/Scripts/Master.1.0.1.sql b/Oqtane.Server/Scripts/Master.01.00.01.00.sql similarity index 100% rename from Oqtane.Server/Scripts/Master.1.0.1.sql rename to Oqtane.Server/Scripts/Master.01.00.01.00.sql diff --git a/Oqtane.Server/Scripts/Tenant.00.00.00.00.sql b/Oqtane.Server/Scripts/Tenant.00.00.00.00.sql new file mode 100644 index 00000000..ffbe2d02 --- /dev/null +++ b/Oqtane.Server/Scripts/Tenant.00.00.00.00.sql @@ -0,0 +1,14 @@ +/* + +migrate to new naming convention for scripts + +*/ + +UPDATE [dbo].[SchemaVersions] SET ScriptName = 'Oqtane.Scripts.Tenant.00.09.00.00.sql' WHERE ScriptName = 'Oqtane.Scripts.Tenant.0.9.0.sql' +GO +UPDATE [dbo].[SchemaVersions] SET ScriptName = 'Oqtane.Scripts.Tenant.00.09.01.00.sql' WHERE ScriptName = 'Oqtane.Scripts.Tenant.0.9.1.sql' +GO +UPDATE [dbo].[SchemaVersions] SET ScriptName = 'Oqtane.Scripts.Tenant.00.09.02.00.sql' WHERE ScriptName = 'Oqtane.Scripts.Tenant.0.9.2.sql' +GO +UPDATE [dbo].[SchemaVersions] SET ScriptName = 'Oqtane.Scripts.Tenant.01.00.01.00.sql' WHERE ScriptName = 'Oqtane.Scripts.Tenant.1.0.1.sql' +GO diff --git a/Oqtane.Server/Scripts/Tenant.0.9.0.sql b/Oqtane.Server/Scripts/Tenant.00.09.00.00.sql similarity index 100% rename from Oqtane.Server/Scripts/Tenant.0.9.0.sql rename to Oqtane.Server/Scripts/Tenant.00.09.00.00.sql diff --git a/Oqtane.Server/Scripts/Tenant.0.9.1.sql b/Oqtane.Server/Scripts/Tenant.00.09.01.00.sql similarity index 100% rename from Oqtane.Server/Scripts/Tenant.0.9.1.sql rename to Oqtane.Server/Scripts/Tenant.00.09.01.00.sql diff --git a/Oqtane.Server/Scripts/Tenant.0.9.2.sql b/Oqtane.Server/Scripts/Tenant.00.09.02.00.sql similarity index 100% rename from Oqtane.Server/Scripts/Tenant.0.9.2.sql rename to Oqtane.Server/Scripts/Tenant.00.09.02.00.sql diff --git a/Oqtane.Server/Scripts/Tenant.1.0.1.sql b/Oqtane.Server/Scripts/Tenant.01.00.01.00.sql similarity index 100% rename from Oqtane.Server/Scripts/Tenant.1.0.1.sql rename to Oqtane.Server/Scripts/Tenant.01.00.01.00.sql