当前位置: 首页 > 工具软件 > ActiveAndroid > 使用案例 >

ActiveAndroid 新增字段的数据库升级

钮勇
2023-12-01

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

 类似资料: