From a71e460892198824280136ba4d64acf85474157e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Jan 2021 09:42:32 +0300 Subject: [PATCH] Fix DbMigrator for mongodb resolves https://github.com/abpframework/abp/issues/7242 --- .../Data/MyProjectNameDbMigrationService.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index aec2fb6de7..13ba7dc40f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -41,9 +41,9 @@ namespace MyCompanyName.MyProjectName.Data { try { - if (!await MigrationsFolderExists()) + if (await DbMigrationsProjectExistsAsync() && !await MigrationsFolderExistsAsync()) { - await AddInitialMigration(); + await AddInitialMigrationAsync(); return; } } @@ -108,14 +108,21 @@ namespace MyCompanyName.MyProjectName.Data await _dataSeeder.SeedAsync(tenant?.Id); } - private async Task MigrationsFolderExists() + private async Task DbMigrationsProjectExistsAsync() + { + var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); + + return dbMigrationsProjectFolder != null; + } + + private async Task MigrationsFolderExistsAsync() { var dbMigrationsProjectFolder = GetDbMigrationsProjectFolderPath(); return Directory.Exists(Path.Combine(dbMigrationsProjectFolder, "migrations")); } - private async Task AddInitialMigration() + private async Task AddInitialMigrationAsync() { Logger.LogInformation("Creating initial migration..."); @@ -147,7 +154,7 @@ namespace MyCompanyName.MyProjectName.Data } } - private static string GetDbMigrationsProjectFolderPath() + private string GetDbMigrationsProjectFolderPath() { var slnDirectoryPath = GetSolutionDirectoryPath(); @@ -162,7 +169,7 @@ namespace MyCompanyName.MyProjectName.Data .FirstOrDefault(d => d.EndsWith(".DbMigrations")); } - private static string GetSolutionDirectoryPath() + private string GetSolutionDirectoryPath() { var currentDirectory = new DirectoryInfo(Directory.GetCurrentDirectory());