• [EF Core] 迁移基础知识


    [文章内容来源于Microsoft Doc]

      开发期间,数据模型将发生更改并与数据库不同步。 可以删除该数据库,让 EF 创建一个新的数据库来匹配该模型,但此过程会导致数据丢失。 EF Core 中的迁移功能能够以递增方式更新数据库架构,使其与应用程序的数据模型保持同步,同时保留数据库中的现有数据。

      迁移包括命令行工具和 API,可帮助执行以下任务:

    • 创建迁移。 生成可以更新数据库以使其与一系列模型更改同步的代码。
    • 更新数据库。 应用挂起的迁移更新数据库架构。
    • 自定义迁移代码。 有时,需要修改或补充生成的代码。
    • 删除迁移。 删除生成的代码。
    • 还原迁移。 撤消数据库更改。(sqlite不支持表和字段的重命名等给还原带来很多问题)
    • 生成 SQL 脚本。 可能需要一个脚本来更新生产数据库,或者对迁移代码进行故障排除。
    • 在运行时应用迁移。 当设计时更新和正在运行脚本不是最佳选项时,调用 Migrate() 方法。

    创建迁移

    PowerShell-> Add-Migration InitialCreate

    .Net Core CLI-> dotnet ef migrations add InitialCreate

    更新数据库

    PowerShell-> Update-Database

    .Net Core CLI-> dotnet ef database update

    自定义迁移代码

    PowerShell-> Add-Migration AddProductReviews

    .Net Core CLI-> dotnet ef migrations add AddProductReviews

    修改迁移基架中的代码,然后更新数据库。

    空迁移

    有时模型未变更,直接添加迁移也很有用处。 在这种情况下,添加新迁移会创建一个带空类的代码文件。 可以自定义此迁移,执行与 EF Core 模型不直接相关的操作。 可能需要通过此方式管理的一些事项包括:

    • 全文搜索
    • 函数
    • 存储过程
    • 触发器
    • 视图

    删除迁移

     

    PowerShell-> Remove-Migration

    .Net Core CLI-> dotnet ef migrations remove

    还原迁移

    PowerShell-> Update-Database LastGoodMigration

    .Net Core CLI-> dotnet ef database update LastGoodMigration

    生成 SQL 脚本 

    PowerShell-> Script-Migration

    .Net Core CLI-> dotnet ef migrations script

    在运行时应用迁移

     myDbContext.Database.Migrate();

  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/amytal/p/11686180.html
Copyright © 2020-2023  润新知