Abp启动时自动迁移数据库

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Abp启动时自动迁移数据库相关的知识,希望对你有一定的参考价值。

如何在不使用 PowerShell的update-database 的情况下,启动Abp项目自动迁移/升级数据库。

1.找到 xxx.EntityFrameworkCore的项目  (xxx就是你的项目名)。

2.展开 EntityFrameworkCore/Seed 找到 SeedHelper.cs文件。

下面是原有代码

private static void WithDbContext<TDbContext>(IIocResolver iocResolver, Action<TDbContext> contextAction)
    where TDbContext : DbContext
{
    using (var uowManager = iocResolver.ResolveAsDisposable<IUnitOfWorkManager>())
    {
        using (var uow = uowManager.Object.Begin(TransactionScopeOption.Suppress))
        {
            var context = uowManager.Object.Current.GetDbContext<TDbContext>(MultiTenancySides.Host);

            contextAction(context);

            uow.Complete();
        }
    }
}

修改后的代码

#region 运行时自动迁移
var abpZeroDbMigrator = iocResolver.Resolve<AbpZeroDbMigrator>();
abpZeroDbMigrator.CreateOrMigrateForHost(context =>
{
    contextAction(context as TDbContext);
});
#endregion

运行程序会自动执行迁移,不再需要手动迁移了。

以上是关于Abp启动时自动迁移数据库的主要内容,如果未能解决你的问题,请参考以下文章

ABP 框架 数据库底层迁移 Mysql 集群

ABP框架EF6链接Oracle数据库手动迁移

ABP项目启动及源代码结构

ABP .Net Core Entity Framework迁移使用MySql数据库

ABP框架数据迁移报错

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段