Browse Source

Added Migrator

pull/997/head
Alper Ebicoglu 7 years ago
parent
commit
22f1f73bb1
  1. 7
      modules/docs/Volo.Docs.sln
  2. 2
      modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocsDbContextFactory.cs
  3. 13
      modules/docs/app/VoloDocs.Migrator/AppExtensions.cs
  4. 54
      modules/docs/app/VoloDocs.Migrator/Program.cs
  5. 26
      modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj
  6. 29
      modules/docs/app/VoloDocs.Migrator/VoloDocsMigratorModule.cs
  7. 3
      modules/docs/app/VoloDocs.Migrator/appsettings.json
  8. 9
      modules/docs/app/VoloDocs/VoloDocsModule.cs

7
modules/docs/Volo.Docs.sln

@ -43,6 +43,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoloDocs.EntityFrameworkCor
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoloDocs", "app\VoloDocs\VoloDocs.csproj", "{057EA924-4524-4452-840C-5E3D509F2ED3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VoloDocs.Migrator", "app\VoloDocs.Migrator\VoloDocs.Migrator.csproj", "{8A5E5001-C017-44A8-ADDA-DC66C102556E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -109,6 +111,10 @@ Global
{057EA924-4524-4452-840C-5E3D509F2ED3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{057EA924-4524-4452-840C-5E3D509F2ED3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{057EA924-4524-4452-840C-5E3D509F2ED3}.Release|Any CPU.Build.0 = Release|Any CPU
{8A5E5001-C017-44A8-ADDA-DC66C102556E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A5E5001-C017-44A8-ADDA-DC66C102556E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A5E5001-C017-44A8-ADDA-DC66C102556E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A5E5001-C017-44A8-ADDA-DC66C102556E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -132,6 +138,7 @@ Global
{116A6145-9D66-4867-B3EF-A464FAC47946} = {BCA19441-17E9-43E6-AED1-15344D18F967}
{1B459653-8DAC-41CD-A08E-28D6E74265D3} = {555508AD-F593-43E3-9354-9FA51512F181}
{057EA924-4524-4452-840C-5E3D509F2ED3} = {555508AD-F593-43E3-9354-9FA51512F181}
{8A5E5001-C017-44A8-ADDA-DC66C102556E} = {555508AD-F593-43E3-9354-9FA51512F181}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {13691265-2547-4FFF-B757-E8FACB05679D}

2
modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocsDbContextFactory.cs

@ -12,7 +12,7 @@ namespace VoloDocs.EntityFrameworkCore
var configuration = BuildConfiguration();
var builder = new DbContextOptionsBuilder<VoloDocsDbContext>()
.UseSqlServer(configuration.GetConnectionString("SqlServer"));
.UseSqlServer(configuration["ConnectionString"]);
return new VoloDocsDbContext(builder.Options);
}

13
modules/docs/app/VoloDocs.Migrator/AppExtensions.cs

@ -0,0 +1,13 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
namespace VoloDocs.Migrator
{
public static class AppExtensions
{
public static T Resolve<T>(this IAbpApplicationWithInternalServiceProvider app)
{
return (T)app.ServiceProvider.GetRequiredService<T>();
}
}
}

54
modules/docs/app/VoloDocs.Migrator/Program.cs

@ -0,0 +1,54 @@
using System;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using VoloDocs.EntityFrameworkCore;
namespace VoloDocs.Migrator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Initializing VoloDocs Migrator ... ");
using (var app = AbpApplicationFactory.Create<VoloDocsMigratorModule>())
{
app.Initialize();
using (var dbContext = app.Resolve<VoloDocsDbContext>())
{
var connectionString = dbContext.Database.GetDbConnection().ConnectionString;
Console.Clear();
Console.Write("\nThis program updates an existing database or creates a new one if not exists.\n" +
"The following connection string will be used:\n\n" +
new string('=', 70) + "\n" +
connectionString + "\n" +
new string('=', 70) + "\n\n" +
"Do you confirm to run the migration? (y/n) ");
if (Console.ReadKey().Key == ConsoleKey.Y)
{
try
{
Console.WriteLine("\nMigrating...");
dbContext.Database.Migrate();
Console.WriteLine("\nCompleted.");
}
catch (Exception ex)
{
Console.Write("\nAn error occured while migrating the database:\n");
Console.Write(ex.ToString());
}
}
}
Console.WriteLine("Press ENTER to exit...");
Console.ReadLine();
}
}
}
}

26
modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj

@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<None Remove="appsettings.json" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj" />
<ProjectReference Include="..\VoloDocs.EntityFrameworkCore\VoloDocs.EntityFrameworkCore.csproj" />
<!--<ProjectReference Include="..\VoloDocs\VoloDocs.csproj" />-->
</ItemGroup>
</Project>

29
modules/docs/app/VoloDocs.Migrator/VoloDocsMigratorModule.cs

@ -0,0 +1,29 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;
using VoloDocs.EntityFrameworkCore;
namespace VoloDocs.Migrator
{
[DependsOn(typeof(VoloDocsEntityFrameworkCoreModule))]
public class VoloDocsMigratorModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
context.Services.AddAbpDbContext<VoloDocsDbContext>();
Configure<DbConnectionOptions>(options =>
{
options.ConnectionStrings.Default = configuration["ConnectionString"];
});
Configure<AbpDbContextOptions>(options =>
{
options.UseSqlServer();
});
}
}
}

3
modules/docs/app/VoloDocs.Migrator/appsettings.json

@ -0,0 +1,3 @@
{
"ConnectionString": "Server=localhost;Database=VoloDocsNew;Trusted_Connection=True;MultipleActiveResultSets=true"
}

9
modules/docs/app/VoloDocs/VoloDocsModule.cs

@ -14,7 +14,6 @@ using Volo.Abp.AspNetCore.Mvc.UI;
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Components;
using Volo.Abp.AspNetCore.Mvc.UI.Theming;
using Volo.Abp.Autofac;
using Volo.Abp.Data;
@ -55,12 +54,6 @@ namespace VoloDocs
{
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
//Configure<AppSettings>(options =>
//{
// options.ConnectionString = configuration["ConnectionString"];
// options.Title = configuration["Title"];
//});
Configure<DbConnectionOptions>(options =>
{
@ -112,8 +105,6 @@ namespace VoloDocs
{
options.Conventions.AddPageRoute("/Error", "error/{statusCode}");
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)

Loading…
Cancel
Save