ActiveAndroid 新增字段的数据库升级

翻译 2015年11月17日 18:28:00

以下为github上的介绍(翻译)

如果你想要给已经存在的model添加一条新的数据库字段,你需要给你的model对应的数据库表写一个迁移脚本,下面是操作方法:

在model中添加一个字段(priority是新添加的):

    import com.activeandroid.Model;
    import com.activeandroid.annotation.Column;
    import com.activeandroid.annotation.Table;

    @Table(name = "Items")
    public class Item extends Model {
        @Column(name = "remote_id", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
        public long remoteId;

        @Column(name = "Name")
        public String name;

        @Column(name = "Priority") //new column
        public String priority;

        public Item(){
           super();
        }

        public Item(int remoteId, String name, String priority){
            super();
            this.remoteId = remoteId;
            this.name = name;
            this.priority = priority;
        }
    }

修改AndroidManifest.xml文件中的数据库版本号,新的版本号等于旧的版本号加一。

    <meta-data
        android:name="AA_DB_NAME"
        android:value="Application.db" />
    <meta-data
        android:name="AA_DB_VERSION"
        android:value="2" />

编写脚本。新建一个文件,命名为[newDatabaseVersion].sql,如2.sql,3.sql。将这个文件放到[你的应用]/app/src/main/assets/migrations目录下,如果migrations不存在则需要手动创建。在上面的例子中,我会新建一个2.sql文件:[MyAppName]/app/src/main/assets/migrations/2.sql。在2.sql文件中需要添加如下数据库脚本来添加列:

    ALTER TABLE Items ADD COLUMN Priority TEXT;

记住,为了触发这个脚本,你需要在代码的某一个地方保存一次你的Model的实例。

翻译自https://github.com/codepath/android_guides/wiki/ActiveAndroid-Guide

相关文章推荐

Android 数据库升级解决方案

请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不一样的,比如V1.0的表A有10个column,而在V1.1的表A有12个colum,在升级时,表A增加了两列,此时我...

Android--数据库升级,插入新字段

转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构...

greenDao 3.x遇到数据库升级,且表结构中添加int类型字段问题。

【转载自http://blog.csdn.net/u013183495/article/details/53467746】不过在测试阶段发现问题还是存在,后来逐步调试过程中发现getTypeByCla...

GreenDAO 1.+ 升级到 3.2 的代码修改,本地数据库版本号的升级(需要添加新字段)

这个很早以前就用了,那时候依赖的还是1.+的版本,之前是需要建一个java项目在工程中,现在只需要加几个依赖和在Entity中加注释即可 以前的写法: Schema schema = new Sc...

BeeFrameWork框架下的ActiveAndroid自动生成数据库表Java文件

根据所给的字段和类型的键值对, 或者从文件中读取字段类型的键值对, 自动更新或生成具有数据库字段,构建器类Builder,fromJson和toJson函数的数据库表文件 生成文件如下: pac...

Android 使用ActiveAndroid 管理数据库

先看看效果: ActiveAndroid简单介绍: ActiveAndroid是采用活动记录(Active Record)架构模式设计的适用于Android平台的轻量级ORM架...

玩转Android之数据库框架ActiveAndroid的使用

ActiveAndroid是一个开源的数据库框架,使我们在Android中使用数据库变得更为简单,今天我们就来看看这个数据库框架的使用。1.引入ActiveAndroid首先创建我们自己的项目,在我们...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)