关闭

ActiveAndroid 新增字段的数据库升级

标签: Android数据库
1590人阅读 评论(0) 收藏 举报
分类:

以下为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

0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1602次
    • 积分:24
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章分类
    文章存档