Mas*_*sum 9 android android-room
我使用的是房间2.4.0-alpha01
但它告诉我这个错误
在路径:\app\schemascom.pigeon.mangaer.AppDB/2.json 中找不到迁移所需的模式。无法生成自动迁移。
这是我的代码:
@Database(
exportSchema = true,
version = 3,
entities = [Pigeon::class,PairEntity::class],
autoMigrations = [
AutoMigration(from = 2,to = 3)
]
)
abstract class AppDB:RoomDatabase() {
abstract fun pigeonDao():PigeonDao
abstract fun pairDao():PairDao
}
Run Code Online (Sandbox Code Playgroud)
就我而言,我在进行更改和编译后更改了数据库版本。这修改了旧版本 ( 2.json) 的生成架构,因此新版本仍会与错误的旧版本进行比较。
花了一些时间我才注意到这一点,因此回滚旧模式上的更改修复了它。这是假设您使用某种版本控制。如果没有它,您应该首先构建应用程序,而不对数据模型进行更改。然后提高数据库版本并应用更改(添加/删除列等)。
房间自动迁移需要您导出数据库架构,以便它可以知道您的数据库在之前版本中的情况,以便生成自动迁移。这是在 Medium 上的一篇帖子中声明的Florina Muntenescu
\n\n\n\xe2\x9a\xa0\xef\xb8\x8f注意:在幕后,Room 自动迁移依赖于生成的\n数据库架构,因此在使用 autoMigrations 时,请确保\n@Database 中的 exportSchema 选项为 true。否则会导致\n错误:导出架构关闭时无法创建自动迁移。
\n
这个答案显示了如何添加选项exportSchema正确添加到您的项目中。
| 归档时间: |
|
| 查看次数: |
9632 次 |
| 最近记录: |