为支持多种数据库的项目添加数据迁移

  通常情况下,为 web 或 api 项目添加数据迁移,在启动项目和数据库项目分别添加 Microsoft.EntityFrameworkCore.Design 和 Microsoft.EntityFrameworkCore.Tools 包引用之后,在 VS 程序包管理控制台选择数据库项目为默认项目,添加 Add-Migration InitialCreate,在生成 Migrations 文件之后,执行命令 Update-Database 来更新数据库。

  在写了 PrimeLogger 之后,我在想如果使用了这个组件来记录日志之后,万一后续数据库模型有变动,有可能会引起一些麻烦,所以考虑为项目引入数据迁移。初始提交的版本只有一个类库项目 Extensions.Logging.Prime,数据库上下文 LogDbContext 也是在此项目下。因为支持三种数据库,所以需要生成三种不同的迁移文件。项目结构变更如下图。

  在程序包管理控制台分别为三个数据库迁移项目执行命令生成迁移文件。

Add-Migration InitSqlServer -StartupProject Sample.PrimeApi -Project Extensions.Logging.Prime.Migrations.SqlServer -Context LogDbContext

  生成迁移文件之后,在 LogDbContext 构造函数中添加逻辑判断,有待更新的迁移才执行数据库迁移。

 

posted @ 2025-04-04 21:10  原来是李  阅读(29)  评论(0)    收藏  举报