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启动时自动迁移数据库的主要内容,如果未能解决你的问题,请参考以下文章