关于Room数据库升级 Migration的配置
本文最后更新于 889 天前,其中的信息可能已经有所发展或是发生改变。

Android开发的小伙伴们应该对Room再熟悉不过了吧,虽然好用,但是初学肯定会遇到各种各样的问题,这次来简单记录一下Room数据库添加数据表的版本升级。

Room$databaseBuilder下提供了addMigrations方法以供开发者升级数据库,但是直接将数据库的version修改之后会直接提示找不到数据表的错误,这就需要我们自己手动写SQL语句来新建数据表。

当然我们可以自己使用database.execSQL直接修改,但是毕竟我比较懒嘛,所以想到一个很妙的方法,不知道有没有前辈发现过。

简单来说,只需要将数据库的version修改,在entities里加上对应的对象即可,编译启动app后会崩溃退出,这时先不用管它,让我们回到带有@Database注解的那个类中。

这时我们找到abstract DAO的代码行,可以发现左边有一个f(x),直接点进去:

在里面找到createOpenHelper函数,现在我们发现在其中的createAllTables已经有自动生成好的SQL语句,可以直接拿来用。

将它们复制到addMigration中,大功告成。

未经允许禁止转载本站内容,经允许转载后请严格遵守CC-BY-NC-ND知识共享协议4.0,代码部分则采用GPL v3.0协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇