首页 > 其他分享 >EFCore 迁移(5)

EFCore 迁移(5)

时间:2023-12-22 18:01:44浏览次数:42  
标签:Script 数据库 xxx Update Migration EFCore 迁移

当模型发生更改时,将在正常开发过程中添加和删除迁移,并将迁移文件签入项目的源代码管理,进行迁移时,必须在启动程序中安装nuget包:Microsoft.EntityFrameworkCore.Tools,并在VS的程序包管理器控制台执行迁移指令

管理迁移:

1、新增迁移,Init指迁移名称,用途与版本控制中提交信息类似,有助于维护,回滚等

Add-Migration Init

执行迁移指令后,会在项目中添加“Migrations”文件夹,并添加两个文件:

        xxxxxxxxxxxx_Init.cs:迁移文件

        MyDbContextModelSnapshot.cs:当前模型的快照

注意:执行迁移指令后,只是生成迁移文件,还没有把迁移应用到数据库,也就是说此时数据库还没有任何更改

2、删除迁移:有时可能在添加迁移后意识到需要在应用迁移前对 EF Core 模型作出其他更改。 要删除上个迁移,请使用如下命令

Remove-Migration

 应用迁移:

       在程序执行完Add-Migration 添加迁移后,需要把迁移应用到数据库,有两种方式:

1、使用以下命令,update-database:把最新的迁移应用到数据库

Update-Database

  或  Update-Database xxx:把xxx迁移应用到数据库,xxx可以不是最新的,也就是说可以通过指定xxx回滚到较早的迁移,但注意可能会导致数据丢失,且迁移文件不会删除

Update-Database AddStudentGender

2、使用SQL脚本进行迁移

      执行以下命令生成迁移代码:

Script-Migration

    也可以使用 Script-Migration xxx yyy 执行指定从xxx到yyy的迁移,如果xxx比yyy更新,则可以实现回滚

    执行完Script-Migration后vs会生成SQL脚本,在数据库中再执行这个脚本,完成数据库迁移

建议:开发过程中可以使用Update-Database,但生产环境下建议使用Script-Migration生成脚本再执行,这样风险较小

EFCore迁移官方文档

 

标签:Script,数据库,xxx,Update,Migration,EFCore,迁移
From: https://www.cnblogs.com/luohualiushui1173/p/17922061.html

相关文章

  • laravel 数据迁移
    迁移命令运行迁移:phpartisanmigrate回滚最近一次数据迁移:phpartisanmigrate:rollback创建表:phpartisanmake:migrationcreate_表名_table新增字段:phpartisanmake:migrationadd_要添加的字段名_to_要添加字段的表名_table修改字段:phpartisanmake:m......
  • 【Docker】关于挂载修改&迁移问题
    如果进行容器挂载迁移,新挂载的目录会导致之前容器内的数据丢失,接下来给大家整理思路之前是没有进行数据挂载的,也就是默认路径#先查看一下默认路径dockerinspect【容器名】#Mounts这里有详细的挂载信息,可以看到最开始的默认路径是home/lib/docker/volumes/b9588a26ea88d44f1......
  • GEE好文推荐——利用样本点迁移方法快速实现全球范围内1984年至今基于Landsat影像的土
    最近我新发表了一篇新的文章,也就是利用样本点迁移的方法来快速实现全球长时序快速土地分类,本文发布了应用APP,用户可以在线体验使用快速分类的效果。原文链接:Land|FreeFull-Text|RapidLandCoverClassificationUsinga36-YearTimeSeriesofMulti-SourceRemoteSensing......
  • 从Newtonsoft.Json迁移到 System.Text.Json不简单
    一.写在前面#System.Text.Json是.NETCore3及以上版本内置的Json序列化组件,刚推出的时候经常看到踩各种坑的吐槽,现在经过几个版本的迭代优化,提升了易用性,修复了各种问题,是时候考虑使用System.Text.Json了。本文将从使用层面来进行对比。System.Text.Json在默认情况下十......
  • openGauss学习笔记-166 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STD
    openGauss学习笔记-166openGauss数据库运维-备份与恢复-导入数据-使用COPYFROMSTDIN导入数据-从MY向openGauss数据库进行数据迁移166.1示例2:从MY向openGauss数据库进行数据迁移下面示例演示如何通过CopyManager从MY向openGauss数据库进行数据迁移的过程。importjava.io.St......
  • 分享一个linux服务器迁移文件脚本
    #!/bin/bash#定义源和目标服务器SRC_SERVER=""DEST_SERVER="[email protected]"#定义源和目标目录SRC_DIR="/home"DEST_DIR="/home"#定义rsync命令选项1500是1500kbRSYNC_OPTS="-avz--partial--progress--delete--bwlimit=1500"#......
  • MongoDB mongoshake 迁移分片到复制集合
    Mongoshake是阿里云自研的开源工具,实现Mongodb数据库之间的数据同步,数据灾备,数据多活,分库分表,版本升级无间断。其中需要注意的一些事项1 Mongoshake尽量使用较高的版本,低版本的产品有一些Bug 2 Mongoshake在使用中需要源库的用户权限为readAnyDatabase  同时Mongoshake......
  • 数据库迁移方式和相关文档地址
    数据库迁移方式1、phpyiimigrate文档地址2、flyway文档地址3、liqiubase操作文档更多的其他迁移工具探索方式flywayalternatives迁移比较liqiubase操作(1)、在Java中的项目中使用1、在yml中配置相关的扫描springliquibase:change-log:classpath:db/c......
  • ABP-VNext 用户权限管理系统实战01---AuthServer服务迁移数据库到mysql
    一、从github上获取源码后修改命名空间下载dome后修改解决方案名为Bridge。 二、默认是连接sqlserver的,需要修改为可以连接mysql修改appsettings.json文件的ConnectionStrings参数,准备一个可以连接的mysql,新建数据库bridge{"ConnectionStrings":{"Default":"Se......
  • Argo Rollouts Canary结合Istio进行流量迁移实例
    环境说明用argorollouts金丝雀发布策略更新nginx服务。发布过程结合Isito和analysis。创建nsargo-demo#kubectlcreatensargo-demonamespace/argo-democreated启用Istio自动注入功能#kubectllabelnamespaceargo-demoistio-injection=enablednamespace/argo-d......