04_数据库升级onUpgrade&ondowngrade】的更多相关文章

如果想操作多个数据库就不要把数据库的名字写死了 public MyOpenHelper(Context context, String name){ //第一个参数上下文 //第二个参数 数据库的名字 如果传入null 就是在内存中创建一个数据库 内存中的数据库在应用退出之后 数据就会丢失 //如果是聊天记录之类我真正的想给它存起来,下一次再启动还想用那你就要给它存储到一个具体的数据库里面.这个名字就一定要传进来 //第三个参数 游标工厂 如果使用系统默认的游标工厂就传入null //第四个参数…
Android Sqlite数据库升级,在Android APP开发之中,非常常见: 在确定原来的数据库版本号之后,在原来数据库版本号+1,就会执行onUpgrade方法,进行数据库升级操作: 在onUpgrade方法中,执行alter table student_table add age integer null 语句: package com.liudeli.day2.sqlite.db; import android.content.Context; import android.dat…
借用API文档解释: public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 当数据库需要升级时,会调用这个方法.应该使用这个方法来实现删除表.添加表或者做一些需要升级新的策略版本的事情. SQLite ALTER TABLE的文档可以在以下网址中找到: http://sqlite.org/lang_altertable.html 如果要给表添加一个新列,那么使用使用ALTER TABLE…
数据库版本升级对软件的管理操作. 我们手机经常会收到xxx软件升级什么的提醒,你的软件版本更新,同时你的数据库对应的版本也要相应的更新. 数据库版本更新需要主要的问题: 软件的1.0版本升级到1.1版本时,老的数据不能丢. 那么在1.1版本的程序中就要有地方能够检测出来新的软件版本与老的数据库不兼容,并且能够有办法把1.0软件的数据库升级到1.1软件能够使用的数据库. 换句话说,要在1.0软件的数据库的那个表中增加那个字段,并赋予这个字段默认值. 当然有的时候我们对更新后的 版本并没有什么好感,…
以下内容可以作为面试官在面试的时候的问题,感觉比较好,是比较常用的知识点,可以用来考察基础是否扎实. 也可以程序猿学习.开发中的注意点.因为稍微不注意,就有可能导致数据库不能用. DBAdapter.java是一个简单的类,主要用来进行数据库操作. package com.example.test_20131218; import android.content.Context; import android.database.sqlite.SQLiteDatabase; public clas…
原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 import and…
转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不一样的,比如V1.0的表A有10个column,而在V1.1的表A有12个colum,在升级时,表A增加了两列,此时我们应该怎么做呢. 总体思路 1,将表A重命名,改了A_temp. 2,创建新表A. 3,将表A_temp的数据插入到表A. 下面代码列出了更新表的实现,upgradeTables,给…
SQLiteOpenHelper // 如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次) public abstract void onCreate(SQLiteDatabase db); // 如果数据库文件存在,会调用onUpgrade()方法升级数据库,并更新版本号. public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion); OnCreate : 如…
1使用方法 一.添加依赖 在bulid.gradle文件下的dependencies下添加所需依赖   compile 'org.greenrobot:greendao:3.2.2' // add library   compile 'org.greenrobot:greendao-generator:3.2.2   二:在bulid.gradle下进行配置   apply plugin: 'org.greenrobot.greendao'   buildscript {   repositor…
之前使用的greendao数据库存储服务器所有的历史推送消息,但是后来消息需要加几个新的字段 举个栗子,比如要新增红色框住的字段到数据库中: 本仙女作为一只思想成熟的菜鸡,当然是加了字段就赶紧重新往里存,然后就一通报错android.database.sqlite.SQLiteException: no such column: T.XXX (code 1): , while compiling... emm, 这种时候,求上进的仙女一般都会上网找问题 然后发现,原来是数据库没升级 嗯, 好的,…
在Android开发中,sqlite至关重要,增删查改不多说,难点在于,1,并发,多个线程同时操作数据库.2,版本升级时,如果数据库表中新加了个字段,如何在不删除表的情况下顺利过渡,从而不丢失数据. 数据库操作建议用ORM框架,简单高效.这里推荐xUtils,里面包含DBUtils.github地址:https://github.com/wyouflf/xUtils.关于DBUtils,它是这样介绍的: android中的orm框架,一行代码就可以进行增删改查: 支持事务,默认关闭: 可通过注解…
第一部分 Andoird的SQLiteOpenHelper类中有一个onUpgrade方法.帮助文档中只是说当数据库升级时该方法被触发.经过实践,解决了我一连串的疑问: 1. 帮助文档里说的“数据库升级”是指什么? 你开发了一个程序,当前是1.0版本.该程序用到了数据库.到1.1版本时,你在数据库的某个表中增加了一个字段.那么软件1.0版本用的数据库在软件1.1版本就要被升级了. 2. 数据库升级应该注意什么? 软件的1.0版本升级到1.1版本时,老的数据不能丢.那么在1.1版本的程序中就要有地…
一.数据库升级: 在我们的程序中,或多或少都会涉及到数据库,使用数据库必定会涉及到数据库的升级,数据库升级带来的一些问题,如旧版本数据库的数据记录的保持,对新表的字段的添加等等一系列问题,还记得当我来西安的时候,面试的第二家公司,做音乐播放客户端的,就问到了这个问题; 我们开发了一个程序,当前是1.0版本.该程序用到了数据库.到1.1版本时,在数据库的某个表中增加了一个字段.那么软件1.0版本用的数据库在软件1.1版本就要被升级了.软件的1.0版本升级到1.1版本时,老的数据不能丢.那么在1.1…
数据库事务 有两个特点 1.安全性 情景:正常的转账行为,这个时候如果出现停电等异常,已经扣钱但是没有加钱:这个时候就可用数据库事务解决问题 2.高效性: 使用数据库事务添加享受同数量的数据,对比耗时少: 原理:没开始事务的是打开数据库,插入数据,关闭数据库: 开启事务的是数据存到内存,然后一次写入到数据库: 数据库升级 升级的时候版本号必须要大于等于2:而且要大于上一版本: package com.example.databasedemo; import android.content.Con…
环境: RHEL5.4 + Oracle 10.2.0.4 目的: 在本机将数据库升级到11.2.0.4 之前总结的Oracle数据库异机升级:http://www.cnblogs.com/jyzhao/p/4813324.html 本文简单总结下在本机升级的大体步骤,和异机升级的不同点,及需要注意的地方.下面为主要步骤: 新路径安装11.2.0.4软件 临时生效11g软件环境变量脚本 创建必须的目录 10g库升级前检查 备份10g数据库 升级10g数据库到11g 1. 新路径安装11.2.0.…
官网:https://flywaydb.org/ 转载:http://casheen.iteye.com/blog/1749916 1.  引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发.测试.维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的应用相匹配,如何升级到与新版本的应用相匹配. 想到管理数据库版本时,先是心底形成了一个初步的解决方案,大致是通过数据库中的某张表来记录数据库表结构的历次更新与对应版本…
随着Android应用版本的迭代,经常遇到数据库表结构发生改变,或者一些指定的表数据需要更新.这也就引出一个问题Android数据库的更新问题. Android数据库升级分类 Android数据库更新大致情况可分为以下两种类型: 第一版APP版本号:appVersion = 1.0 第二版APP版本号:appNewVersion = 2.0 1. 用户A,使用了appVersion ,并在自动更新的基础上,升级到appNewVersion: 2. 用户B,没有使用过appVersion,而是直接…
最近工作中有一个sqlserver2005版本的mdf文件,还没有log文件,现在需要 附加到sqlserver2012,经过网上一顿搜索,把完整的过程奉上,供大家参考 首先创建数据库 再设置数据库的兼容性(经过尝试,此步骤可以省略) 停掉sqlserver 服务,将需要附件的mdf文件替换掉创建数据生成的mdf,删除掉对应的ldf文件 再启动sqlserver 服务 执行下面的脚本 脚本一: ALTER DATABASE HunLianJiaoYou SET EMERGENCYALTER DA…
MySQL/MariaDB/Percona数据库升级脚本截取<OneinStack>中upgrade_db.sh, 一般情况下不建议升级数据库版本,该脚本专提供给各位版本控们.为防止大版本之间兼容问题,脚本默认仅支持同一大版本之间的升级,如:MySQL- 5.6.25升级到MySQL-5.6.26.MySQL-5.5.44升级到MySQL-5.5.45.MariaDB-10.0.20升级到 MariaDB-10.0.21:不能跨分支版本且不能跨大版本,如从MySQL-5.5.44升级到Perc…
1. 首先检查oracle数据库版本是否正确 (可以使用方法 lsinventory来实现) 2. 检查oracle连接是否成功 3. 解压升级包,放到特定目录 4. 做升级前数据备份,备份主要业务数据,使用exp 方法来导出dmp 5. 做升级,执行升级数据库数据的sql脚本.(sql 脚本可以通过使用aqua data studio软件来对两个版本的数据库进行比较,得出数据库升级脚本) 6. 检查升级是否成功,(可以通过检查oracle 日志发现是否有error日志存在) 7. 不成功回滚,…
探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB 前言:        从Oracle 12c開始,引入了容器数据库的概念,能够实现数据库插拔操作,例如以下图: 如今我们就来看看怎样将11.2.0.4的数据库插入到12c的CDP里面去,让其成为一个PDB 数据库. 一.查看数据库信息: SQL> col BANNER format a80 SQL> set line 300 SQL> select * from v$version; BANNER CON_I…
探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言:       Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PDB),这是在之前版本号没有的.可是假设我们要将曾经版本号的数据库升级到12c来,那么也应顺其自然的将其变成一个pdb,那么我们的工作不仅包括了数据库软件的升级,同一时候也包括怎样将一个NO-CDB的数据库plug to CDB none. 二.升级要求: 三.升级前准备: 3.1.查看数据库版本号及…
一种版本化的数据库脚本管理机制 现今开发的软件当中,多数系统的数据都是基于数据库存储的,但是由于软件变化的复杂性,相对于维护代码,数据库架构的版本并不是那么好维护. 这里本人针对实际情况,理想化出一种可以清晰理解的数据库架构脚本的版本控制机制. 请先看目录树: Example.DataSchema├─V1.0│  ├─Common│  │      001.Create.Table.Product.sql│  │      002.Create.Table.User.sql│  │      0…
[原创]用PowerDesigner制作数据库升级脚本   很多人使用PD的时候就问有没有制作自动升级脚本的功能.其实是有的. 操作原理: 1.保存原来的版本,另存为apm的文件,生成一个Archive Model. 2.生成升级脚本,需要选择原来的版本 操作步骤: 1.打开PDM文件,选择Save as .... 另存为,在弹出的窗口中选择apm的文件类型,输入文件名保存即可. 2.修改相关的数据模型的内容,然后保存. 3.选择DataBase菜单中的modify database... 菜单…
1 备份配置参数 数据库升级前的配置参数要备份,如PGA大小 这样数据库升级后还可以升级前的配置,而不至于使用安装升级时的默认配置 2 检查版本兼容 确认数据库升级后是否对生产环境上的代码有影响,如果发现一处有影响,则要在全部范围内检查类似的情况 3 客户端同步升级 同时升级开发者本地环境或应用程序的数据库客户端升级到与数据库服务器相同版本 4 确保程序正常运行 数据库升级后确保升级后的数据库不会对连接该库的应用程序有影响…
在公司经常要做测试环境的升级.备份.维护:升级后台的应用,不可避免要进行数据库的升级与备份,花了一个上午琢磨了一个脚本分享给大家. ToB的业务,在做环境维护的时候,有初始化环境和增量升级的环境,在测试阶段,几乎每轮都会动数据库脚本,那么测试环境每轮都需要进行数据库的升级维护 对应业务,基本上会出现以下三种场景: 1.初始化环境,在业务上对应新的B端客户需要安装系统 需要将数据库删除以后重建(必须要这么做,否则可能会出现上一轮的初始化脚本中用到的表,这一轮脚本中删除了,如果不删库重建,可能会存在…
一.数据库升级后保障手段 为了保障从10.2.0.4版本升级到11.2.0.4版本更加平稳,我们事先采用了oracle性能分析器(SQL Performance Analyzer)来预测数据库的关键SQL在Oracle 11.2.0.4版本上的性能情况.以便提前发现问题并做相关性能优化.这一部分的SQL已经提前进行了优化处理.但是Oracle SPA功能这只是预测,我们并不能完全仿真真实应用业务压力上来之后对数据库性能造成的影响.因此,我们需要对其他SQL问题进行快速的处理,保障系统升级后平稳的…
FMDBMigrationManager 是与FMDB结合使用的一个第三方,可以记录数据库版本号并对数据库进行数据库升级等操作.首先要集成FMDB和FMDBMigrationManager,建议使用cocoapods,这里不再多说.根据官方文档的解释,有两种方法实现升级,我们一个一个的解释.先说第一种,添加文件的方式进行记录版本和升级操作,新建一个空白的项目,并创建一个数据库,也就是我们将要进行升级操作的数据库.将数据库与我们的FMDBMigrationManager关联起来 FMDBMigra…
背景 最近接手很多项目都跟数据库升级有关.感触还是颇深,写个心得,供大家参考,如果有疑问欢迎留言.     为什么升级?   你可能会因为各种各样的原因选择升级.我认为原因主要是3个方面 1.旧版本使用中遇到问题 性能问题,高可用问题,灾备问题等.当然升级并不一定能解决这些问题. 2.微软官方逐渐减少对旧版本的支持 2005 将于2016 年4月结束 3.新版本的独特功能 2012的 ALWAYS ON ,2014的内存优化表等   升级到哪个版本好?   首先,版本不是越新越好,适合自己的就是…
sqlserver mdf向上兼容附加数据库(无法打开数据库 'xxxxx' 版本 611.请将该数据库升级为最新版本.) 最近工作中有一个sqlserver2005版本的mdf文件,还没有log文件,现在需要 附加到sqlserver2012,经过网上一顿搜索,把完整的过程奉上,供大家参考 首先创建数据库 再设置数据库的兼容性(经过尝试,此步骤可以省略) 停掉sqlserver 服务,将需要附件的mdf文件替换掉创建数据生成的mdf,删除掉对应的ldf文件 再启动sqlserver 服务 执行…