数据迁移

简介: 数据迁移

 在使用ef的时候我们经常会用到数据迁移功能,这是必不可少的。


(Code First模式)


1:Enable-Migrations


   这是根据连接字符串来检查数据库中是否有数据库,若是没有,则新建一个数据库。并且发现生成如下文件。


679140-20160103174919323-699713798.png

这是生成的配置文件里面有一个类,这个类里面有两个方法:一个无参构造函数 一个seed方法。

679140-20160103174920292-995813502.png679140-20160103174920635-1231991827.png


这里刚开始的时候是false,但是我们要进行数据迁移的时候要将其设置为true。这样我们就可以手动的更新了。


seed方法我们观察里面的代码被注释掉了,这是它在迁移成功之后才去执行,用于初始化数据库里面的内容。


2:Update-database –force


   这句是我们经常使用的,就是我们修改了模型之后,我们要同步到数据库中,就使用这句,但是我们老大说这句可以存在数据的丢失。(不清楚)


之所以添加后面的-force是因为我们的数据库可能里面保存了数据,这样添加的时候就保存原先的数据,只是将我们修改的模型修改过来就行了。



3:Update-database –script


   将上一句后面的参数换掉,这样就只是将我们修改的模型单独的生成了SQL代码,但是数据库里面的模型是不会改变的,我们需要将生成的代码在DB中跑一遍就行了。老大说这样就避免了数据的丢失。比起-force强很多,但是我觉得是一样的。可能是因为我没有遇到这样的情况吧。


679140-20160103174921995-1459112268.png

4:当我们生成数据库的时候会发现表中多了一个表MigrationHistory.


679140-20160103174922682-483903691.png


我们打开这个表发现它里面的字段如下。

679140-20160103174923823-1372826092.png

里面保存的就是我们修改模型的记录。


我们在使用EF的时候有可能会出现迁移不成功,就是按照正常的方式来做的,为什么呢。关于这个我也没办法解决,但是下面几个办法可以试一下。


1:若是我们自己下面练习dome就可以将数据库删除,重新进行迁移,这样就可以解决很多的问题。


2:删除掉自动生成的Migration表,让其重新生成。

目录
相关文章
|
6月前
|
关系型数据库 MySQL 数据库
rds迁移数据迁移工具选择
rds迁移数据迁移工具选择
250 3
|
6月前
|
监控 关系型数据库 数据库
rds跨区迁移数据迁移
rds跨区迁移数据迁移
97 3
|
关系型数据库 MySQL 数据库
2分钟教你用DTS做数据库迁移
工作或者个人开发中,使用的数据库快到期了。不想续费,想换个数据库用,比如从阿里云换到腾讯云数据库。原有的数据怎么一键迁移到新数据库呢,今天就教大家用阿里云DTS做数据库的迁移
611 0
|
6月前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
关系型数据库 MySQL 数据库
MySQL数据库DTS迁移上云
利用DTS数据迁移工具完成RDS实例间的数据迁移。
|
5月前
|
SQL Oracle 关系型数据库
xtts 迁移注意
xtts 迁移注意
44 9
|
6月前
|
数据采集 缓存 搜索推荐
数据同步问题
数据同步问题
85 1
|
6月前
|
SQL 监控 数据库
dts的数据迁移错误
dts的数据迁移错误
94 2
|
6月前
|
存储 数据库
云数据库如何处理数据迁移和数据同步?
云数据库如何处理数据迁移和数据同步?
158 0
|
DataWorks 关系型数据库 MySQL
可以使用DataWorks的数据同步任务(DTS)来实现实时同步
可以使用DataWorks的数据同步任务(DTS)来实现实时同步
464 2