如果你想要给已经存在的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的实例。