iOS CoreData版本升级和数据库迁移】的更多相关文章

app中使用了CoreData,并且在下一个版本中有实体变动,比如实体新增字段.修改字段等改动, 那么app在覆盖安装时就要进行数据库迁移, 否则app就会crash. 那如何实现数据库迁移呢?大概需要这几个步骤: 1. 选中你的CoreData.xcdatamodeld文件,选择Xcode菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel           截图.png 截图.png 2. 起一个名字,也就是当前新版本CoreData文件…
前言:最近ChinaDaily项目需要迭代一个新版本,在这个版本中CoreData数据库模型上有新增表.实体字段的增加,那么在用户覆盖安装程序时就必须要进行CoreData数据库的版本升级和旧数据迁移,如果仅仅是在旧版本的数据模型上进行上述操作,就会造成所有旧用户更新完成后的第一次启动崩溃. 数据迁移的方式有好几种,这里就先介绍我用的轻量级的数据迁移方式:Core Data轻量级迁移是适用于添加新表,添加新的实体,添加新的实体属性,等简单的,系统能自己推断出来的迁移方式.接下来在我之前写的 iO…
本文转载至 http://www.jianshu.com/p/c19dd08697bd 最近不得不考虑关于数据库迁移的问题,原先用了种很不好的处理方式(每次版本升级就删除本地数据库,太傻),于是开始考虑下如何迁移数据库. 项目使用的 FMDB ,除了使用 Core Data 外,这就是最好的了(最近好像又有了个realm ). 在 FMDB 介绍页面,发现了 FMDBMigrationManager ,大喜. 看了半天文档,捣鼓了半天才弄出来,一步步整理下. 0.安装 FMDBMigration…
1.CoreData 数据库 CoreData 是 iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据.使用 CoreData 框架,程序员可以很轻松有效地通过面向对象的接口管理数据.CoreData 框架提供了 对象 - 关系映射 (ORM) 的功能,即能够将 OC 对象转化成数据,保存在 SQLite3 数据库文件中,也能够将保存在数据库中的数据还原成 OC 对象,在数据操作过程中,无需编写任何 SQL 语句. 模型文件及实体(Entity).要使用 CodeDa…
CoreData数据库迁移操作步骤,操作是基于Xcode7. 1.添加新的数据库.选中当前数据库版本:Editor->Add Model Verson,创建一个新的数据库版本. 2.Command + N,创建一个映射模型.iOS->CoreData->Mapping Model->Next,选择旧的数据库版本->Next,选择新的数据库版本->Create. 3.选中一个数据库,右侧工具栏第一个标签->ModelVerson->current,选择最新的数…
2016-04-19更新:本文代码可能有些问题,请移步 http://zhengbomo.github.io/2016-04-18/sqlcipher-start/ 查看 sqlite应用几乎在所有的App都能看到,虽然我们的数据存储在沙盒里面,一般情况下无法拿到,但是iOS管理软件(如:iFunBox)可以读取到应用程序沙盒里面的文件,为了提高数据的安全性,我们需要考虑对数据库进行加密 数据库加密一般有两种方式 1.对所有数据进行加密 2.对数据库文件加密 处于客户端性能的考虑,通常我们对数据…
iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊.不过这门技术的出现也有其存在价值,这是不可否认的事实,即使是不喜欢我们也得去了解一下,因为你不用别人会用,这年头都多人开发,多学点还是有好处的.废话不多说了,该开始正经事了. CoreData介绍 CoreData是一个模型层的技术,也是一种持久化技术(数据库),它能将模型对象的状态持久化到磁盘里,我…
iOS CoreData介绍和使用(以及一些注意事项) 最近花了一点时间整理了一下CoreData,对于经常使用SQLite的我来说,用这个真的有点用不惯,个人觉得实在是没发现什么亮点,不喜勿喷啊.不过这门技术的出现也有其存在价值,这是不可否认的事实,即使是不喜欢我们也得去了解一下,因为你不用别人会用,这年头都多人开发,多学点还是有好处的.废话不多说了,该开始正经事了. CoreData介绍 CoreData是一个模型层的技术,也是一种持久化技术(数据库),它能将模型对象的状态持久化到磁盘里,我…
Realm 是一个跨平台的移动数据库引擎,于 2014 年 7 月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案之一. Realm 可以轻松地移植到您的项目当中,并且绝大部分常用的功能(比如说插入.查询等等)都可以用一行简单的代码轻松完成! Realm 并不是对 Core Data 的简单封装,相反地, Realm 并不是基于 Core Data ,也不是基于 SQLite 所构建的.它拥有自己的数据库存储引擎,可以高效且快速地完成数据库的构建操作. 之 前我们提到过,由于 Rea…
在IOS CoreData中,多表查询上相对来说,没有SQL直观,但CoreData的功能还是可以完成相关操作的. 下面使用CoreData进行关系数据库的表与表之间的关系演示.生成CoreData和如何设置关系就不再详谈了,见之前的文章. 建立好的关系图: 一步步建立上面关系图: 员工表: 部门表: 职位表: 工资等级表: 开户银行表: 建立表之后,我们还需要建立表之间的关系 部门和员工之间的关系:1 ->  N 部门和职位的关系:1  ->  N 职位与员工的关系:1 ->  N 开…
代码地址如下:http://www.demodashi.com/demo/11041.html Core Data是iOS5之后才出现的一个框架,本质上是对SQLite的一个封装,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象,通过CoreData管理应用程序的数据模型,可以极大程度减少需要编写的代码数量! 一.运行效果 二.程序实现 1. 首先创建一个coreData 模型文件:系统创建或者自己创建…
http://blog.csdn.net/fengsh998/article/details/8123392 在iOS CoreData中,多表查询上相对来说,没有SQL直观,但COREDATA的功能还是可以完成相关操作的. 多表查询,表与表之间肯定存在某种关系,如果对于类似外连接,左连接等操作,在COREDATA中就显得无力(请高手指教了). 在上节中,介绍了一下数据库的关系查询操作. 下面使用CoreData进行关系数据库的表与表之间的关系演示. 生成COREDATA和如何设置关系就不再详谈…
1. 安装Gerrit-2.9.5版本(Ubuntu) Gerrit版本:Gerrit-2.9.5.war 操作系统:Ubuntu 16.04.3 JAVA环境:java version "1.8.0_222" Gerrit下载地址:https://gerrit-releases.storage.googleapis.com/gerrit-2.9.5.war(可修改对应的版本号进行下载) Gerrit插件下载地址:https://gerrit-ci.gerritforge.com Ge…
1.EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework. 在程序包管理器控制台中执行以下语句,安装EntityFramework. PM> Install-Package EntityFramework 安装成功后,界面提示如下图: 在新建的Portal控制台应用程序中添加两个实体类,代码结构如下: 其中,类文件PortalContext.cs的代码如下: using System; using System.Colle…
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Migrations with Enti…
laravel号称世界上最好的框架,数据库迁移算上一个,在这里先简单入个门: laravel很强大,它把表中的操作写成了migrations迁移文件,然后可以直接通过迁移文件来操作表.所以 , 数据迁移文件就是 操作表的语句文件 操作表的语句文件为什么用迁移文件 , 而不直接敲 sql 操作表 ?1.  便于团队统一操作表.2.  出了问题,容易追查问题和回溯,有历史回退功能. 先创建一个库: 配置一下文件,修改.env中的参数 cmd.exe命令行输入如下命令创建一个表的迁移文件:php ar…
返回<8天掌握EF的Code First开发>总目录 本篇目录 开启并运行迁移 使用迁移API 应用迁移 给已存在的数据库添加迁移 EF的其他功能 本章小结 自我测试 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注册. 先附上codeplex上EF的源码:entityframework.codeplex.com,此外,本人的实验环境是VS 2013 Update 5,windows 10,MSSQL Server 2008/2012. 这一篇,我们会学…
今天准备说说EntityFramework 6.0+,它与我之前所学的4.0有所区别,自从4.1发布以来,code first 被许多人所钟爱,Dbcontext API也由此时而生.早在学校的时候就听老师说过Db first,Model first 和 Code first , 没怎么去注意,最近我直接从Db first 跳到了 Code first,去了解了下,个人觉得Model first 和 Code first 没多大区别,英文好的人看以看看http://stackoverflow.c…
x项目需要,将以前的sqlserver数据库迁移的oracle数据库中,由于以前对oracle只是在DML语句的步骤,所以总结一下这次遇到的问题以及具体步骤 1,oracle新建数据库 新建Oracle数据库三种方法:1.通过运行Oracle Database Configuration Assistant 创建配置或删除数据库(也可在命令行下输入dbca):2.用命令行的方式建立数据库3.通过运行自定义的批处理脚本(或create_ORACLE_SID.bat(create_ORACLE_SI…
简介 很郁闷,写了一天的遇到LiveWriter错误,可恶啊 几年前在做项目中第一次接触到了Migrator.Net,就深深被吸引住了,至此以后在新的大项目中,我都会使用Migrator.Net来创建或者更新数据库架构.曾经在项目中也发现了小bug并提交给了作者,当时还是有点小激动啊.几年过去了,Migrator.Net虽然已经迁移到了github上,但作者好像从3年前就不再更新了,不过这不影响我对它的喜爱,一如既往的使用着它,它的出现让我对数据库这块彻底的放开,不用手动去创建表,不用手动的去创…
sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 3.检查是否安装成功: apache2 -v 4.sudo apt-get update php5 出现报错:Package php5 have no installation candidate解决: sudo add-apt-repository ppa:ondrej/php sudo apt-…
1.数据库备份RUN {ALLOCATE CHANNEL ch00 DEVICE TYPE disk;ALLOCATE CHANNEL ch01 DEVICE TYPE disk;ALLOCATE CHANNEL ch02 DEVICE TYPE disk;ALLOCATE CHANNEL ch03 DEVICE TYPE disk;ALLOCATE CHANNEL ch04 DEVICE TYPE disk;ALLOCATE CHANNEL ch05 DEVICE TYPE disk;back…
该章节内容翻译自<Database Migration using Laravel>,一切版权为原作者. 原作者:Stable Host, LLC 翻译作者:Bowen Huang 正文: Laravel鼓励敏捷.迭代的开发方式,我们没指望在第一次就获得所有正确的.相反,我们编写代码.测试和与我们的最终用户进行交互,并完善我们的理解. 对于工作,我们需要一个配套的实践集.我们使用像subversion.GIT或Mercurial这些版本控制工具来存储应用程序的源代码文件,使我们能够撤消错误和追…
当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本等.很多企业使用云碰到的难题之一是如何将现有的应用迁移到云上,将现有应用的中间件系统.Web系统及其他组件迁移到云上相对容易,一般只需要重新部署或复制即可,但如何将数据库迁移到AWS云中,是很多企业需要面对的一个难题.由于数据库的种类繁多,本文将以Oracle数据库为例,介绍将数据中心的Oracle迁移到云中的基本知识,不同方法涉及的迁移过程,请参考后续的博客. 1.云中数据库的模式 如果要在云中…
我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Code First如何更新已有的模型呢?今天我们简单介绍一下Entity Framework的数据迁移功能. Entity Framework配置 在开始今天的话题之前先来看一下Entity Framework的配置,因为有很多朋友因为配置文件的问题造成"Migrations"命令执行失败.…
新近领了一个任务,就是把SQL Server的数据库迁移到My Sql上,经过查资料,圆满完成任务.分享一下流程. 1.首先,在自己的My Sql数据库上新建一个数据库. 2.打开新建的My Sql数据库 3.点击工具栏里的导入向导 4.选择ODBC 5.选择数据源 6.填写连接信息 7. 8. 9. 10. 11. 12. 13. 然后,就迁移成功了,可是,貌似外键没有了,还得像别的方法…
MySQL数据库迁移(数据文件直接迁移) 在今年10月下旬的时候,公司的服务器需要迁移,其中涉及到了MySQL数据库迁移.查看了一下MySQL数据文件的大小,接近60G的大小(实际数据并没用那么多).由于服务器上业务需要,要尽量减少服务器迁移时的损失.所以迁移时间选在了晚上零点开始,而且要尽量减少迁移所用的时间. 在迁移之前有三种方案: 数据库直接导出,拷贝文件到新服务器,在新服务器上导入. 使用[MySQL GUI Tools]中的 MySQLMigrationTool. 数据文件和库表结构文…
1.在“服务资源管理器”连接数据库 2.打开工具-Nuget程序包管理器“程序包管理器控制台” 3.控制台输入命令:PM> Enable-Migrations -StartUpProjectName Studentgl(“CodeFirst”是你的项目名称) 如果没有错误你的项目中将自动生成一个名为”Migrations“的文件夹,里面包含两个文件: Configuration.cs和201405131430139_InitialCreate.cs(201405131430139是时间戳). 4…
一.CoreData学习指引 1. 苹果官方:Core Data Programming Guide 什么是CoreData? 创建托管对象模型 初始化Core Data堆栈 提取对象 创建和修改自定义托管对象 2.Core Data在 macOS 10.12 , iOS 10.0, tvOS 10.0和watchOS 3.0中的新特性 国内比较好的CoreData学习资源: 以下资源来自:blog.csdn.net/hello_hwc 汇总目录: http://blog.csdn.net/co…
Setting up Code First Migrations for Model Changes--为模型更改做数据库迁移. 1.打开资源管理器,在App_Data文件夹下,找到movies.mdf数据库文件,如果没有看到点击显示所有文件. 2.删掉movies.mdf数据库文件,并编译项目.确保没有报错. 3.找到工具菜单栏下面的NuGet程序包管理器---程序包管理器控制台,如图所示: 4,在程序包管理器控制台中,输入:Enable-Migrations -ContextTypeName…