【问题标题】:Android Room Migration StrategyAndroid 房间迁移策略
【发布时间】:2019-03-02 19:54:51
【问题描述】:

如果架构发生变化,是否有任何方法可以指示 Room 简单地删除数据库并重新创建它?类似于应用早期开发中常用的实体框架中的迁移策略。

由于我处于应用程序开发的早期阶段,架构更改会很频繁,这意味着编写迁移和更改版本号会浪费我的时间。

谢谢

【问题讨论】:

  • 是的。这在 Room 的文档中得到了解答。在“优雅地处理丢失的迁移路径”中查看 developer.android.com/training/data-storage/room/…
  • 是的,我确实看到并尝试过。它仍然迫使我在架构更改时更新数据库版本号。
  • 是的,那有什么问题? (剧透:这没什么错)

标签: android android-room android-architecture-components


【解决方案1】:

您可以使用fallbackToDestructiveMigration()。使用模式:

Room.databaseBuilder(...)
    .fallbackToDestructiveMigration()
    .build();

【讨论】:

  • 我试过这个,但它会迫使我提高数据库的版本号。那么在开发结束时我的版本号会很高吗?除非我误解了什么。
  • 你确定吗? @BenDonnelly 使用上述(在我的示例中)不会强迫开发人员增加版本号。例如,无论是在更改某些实体详细信息时,还是在添加实体时。
【解决方案2】:

在创建数据库之前添加一个调试标志并删除它。类似Android Room - auto increment @database version number?

如果您不想在每次运行时都捕获异常,然后删除并创建。

这不应该在发布版本上完成。

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 2018-05-13
    • 2021-08-13
    • 2018-05-10
    • 2022-01-13
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多