|
|
|
@ -1,11 +1,19 @@ |
|
|
|
using System; |
|
|
|
using System.Linq; |
|
|
|
using Volo.Abp.Cli.ProjectBuilding.Files; |
|
|
|
using Volo.Abp.Cli.ProjectBuilding.Templates.App; |
|
|
|
|
|
|
|
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps |
|
|
|
{ |
|
|
|
public class DatabaseManagementSystemChangeStep : ProjectBuildPipelineStep |
|
|
|
{ |
|
|
|
private readonly bool _hasDbMigrations; |
|
|
|
|
|
|
|
public DatabaseManagementSystemChangeStep(bool hasDbMigrations) |
|
|
|
{ |
|
|
|
_hasDbMigrations = hasDbMigrations; |
|
|
|
} |
|
|
|
|
|
|
|
public override void Execute(ProjectBuildContext context) |
|
|
|
{ |
|
|
|
switch (context.BuildArgs.DatabaseManagementSystem) |
|
|
|
@ -55,19 +63,19 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps |
|
|
|
|
|
|
|
private void AdjustOracleDbContextOptionsBuilder(ProjectBuildContext context) |
|
|
|
{ |
|
|
|
var dbContextFactoryFile = context.Files.FirstOrDefault(f => f.Name.EndsWith("MigrationsDbContextFactoryBase.cs", StringComparison.OrdinalIgnoreCase)) |
|
|
|
?? context.Files.FirstOrDefault(f => f.Name.EndsWith("MigrationsDbContextFactory.cs", StringComparison.OrdinalIgnoreCase)); |
|
|
|
var dbContextFactoryFile = context.Files.FirstOrDefault(f => f.Name.EndsWith($"{(_hasDbMigrations ? "Migrations" : string.Empty)}DbContextFactoryBase.cs", StringComparison.OrdinalIgnoreCase)) |
|
|
|
?? context.Files.FirstOrDefault(f => f.Name.EndsWith($"{(_hasDbMigrations ? "Migrations" : string.Empty)}DbContextFactory.cs", StringComparison.OrdinalIgnoreCase)); |
|
|
|
|
|
|
|
dbContextFactoryFile?.ReplaceText("new DbContextOptionsBuilder", |
|
|
|
$"(DbContextOptionsBuilder<{context.BuildArgs.SolutionName.ProjectName}MigrationsDbContext>) new DbContextOptionsBuilder"); |
|
|
|
$"(DbContextOptionsBuilder<{context.BuildArgs.SolutionName.ProjectName}{(_hasDbMigrations ? "Migrations" : string.Empty)}DbContext>) new DbContextOptionsBuilder"); |
|
|
|
} |
|
|
|
|
|
|
|
private void AddMySqlServerVersion(ProjectBuildContext context) |
|
|
|
{ |
|
|
|
var dbContextFactoryFile = context.Files.FirstOrDefault(f => f.Name.EndsWith("MigrationsDbContextFactoryBase.cs", StringComparison.OrdinalIgnoreCase)) |
|
|
|
?? context.Files.First(f => f.Name.EndsWith("MigrationsDbContextFactory.cs", StringComparison.OrdinalIgnoreCase)); |
|
|
|
var dbContextFactoryFile = context.Files.FirstOrDefault(f => f.Name.EndsWith($"{(_hasDbMigrations ? "Migrations" : string.Empty)}DbContextFactoryBase.cs", StringComparison.OrdinalIgnoreCase)) |
|
|
|
?? context.Files.FirstOrDefault(f => f.Name.EndsWith($"{(_hasDbMigrations ? "Migrations" : string.Empty)}DbContextFactory.cs", StringComparison.OrdinalIgnoreCase)); |
|
|
|
|
|
|
|
dbContextFactoryFile.ReplaceText("configuration.GetConnectionString(\"Default\")", |
|
|
|
dbContextFactoryFile?.ReplaceText("configuration.GetConnectionString(\"Default\")", |
|
|
|
"configuration.GetConnectionString(\"Default\"), MySqlServerVersion.LatestSupportedServerVersion"); |
|
|
|
} |
|
|
|
|
|
|
|
|