今天主要学习了数据库的迁移。
1、原entity的修改
原先的entity可以直接修改,例如原来的为:
1 | package com.example.roombasic; |
可以直接修改为:
1 | package com.example.roombasic; |
新添加的属性记得添加get和set函数。
2、database的修改
1、不保留原有数据的迁移
不保留原有数据的修改,可以直接将数据库类的版本修改为原版本+1,然后构建数据库类的时候添加一个.fallbackToDestructiveMigration()。
1 | package com.example.roombasic; |
2、保留数据的迁移
此时需要使用另一个方法.addMigrations(),并添加自定义的迁移方式,如:
1 | package com.example.roombasic; |
- Migration(1,2) 中的两个参数是迁移的两个版本号
- ALTER TABLE word ADD COLUMN is_ok INTEGER NOT NULL DEFAULT 0
- 是增加一列,名称为is_ok,不能为空,默认值为0。
- sqlite中没有boolean中,用int代替。