运行项目时 EF Core 自动迁移
启动项目时自动迁移执行数据库迁移,方便在使用容器部署项目时,启动容器即可迁移数据。
using IdentityServer4;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using MiniShop.Ids;
using MiniShop.Ids.Config;
using MiniShop.Ids.Data;
using MiniShop.Ids.Models;
using Serilog;
namespace Microsoft.Extensions.DependencyInjection
{
public static class ServiceCollectionExtensions
{
public static IServiceCollection AddWebHost(this IServiceCollection services, IWebHostEnvironment env)
{
services.AddControllersWithViews().AddRazorRuntimeCompilation();
services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql(BasicSetting.Setting.ConnectionString));
services.AddMigrations();
return services;
}
public static IServiceCollection AddMigrations(this IServiceCollection services)
{
// 自动迁移
services.BuildServiceProvider().GetService<ApplicationDbContext>().Database.Migrate();
return services;
}
}
}
使用 Database.Migrate() 自动迁移(migration),怎么回滚呢?
https://stackoverflow.com/questions/69714351/how-to-downgrade-entity-framework-core-migrations-in-docker-container-docker-swa
EF 迁移到 Docker 容器可参考:
https://makolyte.com/asp0000-calling-buildserviceprovider-from-application-code-results-in-an-additional-copy-of-singleton-services-being-created/
本文来自博客园,作者:weichangk,转载请注明原文链接:https://www.cnblogs.com/weichangk/p/16047919.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix