Skip to content

Commit

Permalink
✨🎨⚡️重大更新:完善数据库迁移
Browse files Browse the repository at this point in the history
随着日益增多的业务表,每次程序启动要扫描一遍表对比结构,会严重影响启动速度,故此优化

1.增加特性[MigrateVersionAttribute]用于标记Model版本,切记再修改Model结构后,修改版本号以便同步结构
2.增加特性[MigrateAttribute]用于标记是否迁移表,默认迁移
3.统一迁移逻辑,核心类:[MigrateCore.cs],增加表:[TableVersion],记录表版本号同EF逻辑一般
4.统一多表、多库迁移逻辑。例如:业务表A结构迁移,会同步所有租户的结构

迁移核心逻辑:
1.Model标记不迁移->程序不做任何处理 return
2.如果没有标记版本号,默认只会初始化,后续修改表结构也不会同步
3.调整表结构后,修改表版本号,程序启动时对比表[TableVersion]中已经记录的版本号:
   比记录大(>):会同步结构;
   比记录小或等(<=):跳过同步;
  • Loading branch information
LemonNoCry committed Dec 28, 2024
1 parent cc8965b commit ed5e1df
Show file tree
Hide file tree
Showing 123 changed files with 722 additions and 765 deletions.
1 change: 0 additions & 1 deletion Blog.Core.Api/Blog.Core.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<!--<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>-->
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
<LangVersion>default</LangVersion>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Expand Down
Loading

0 comments on commit ed5e1df

Please sign in to comment.