【问题标题】:android room the reinstall app migration is not runningandroid room 重新安装应用程序迁移未运行
【发布时间】:2021-07-21 10:07:39
【问题描述】:

创建迁移时,我插入了一些数据,但新安装的应用程序没有执行迁移。
每次迁移时是否需要在 onCreate 调用中插入/更新数据?

【问题讨论】:

    标签: android database android-room database-migration android-jetpack


    【解决方案1】:

    如果您安装该应用程序,迁移将不会运行,因为不存在数据库,所以它被创建。

    迁移旨在处理正在发布的应用程序的新版本,特别是也会更改 Room 数据库版本的新版本。

    每次迁移时是否需要在 onCreate 调用中插入/更新数据?

    否! onCreate 不会运行,它只会在数据库的生命周期内自动运行一次(除非您从迁移中调用它)。

    • 对于要安装的应用程序,它不存在,因此必须卸载,卸载会删除所有应用程序的数据,包括数据库。

    您应该按照迁移代码中的要求执行操作,然后取决于您执行的操作。例如:-

    例如,如果添加一列并且您使用 ALTER TABLE your_table ADD COLUMN the_new_column_definition,则保留现有数据。

    如果添加新表,则没有问题。

    但是,如果您想更改列的定义(而不是名称),则必须删除并重新创建表。通常会做的是创建新表,从原始表填充它,重命名或删除原始表,然后将新表重命名为原始表的名称。

    你不妨看看SQLite ALTER TABLE

    【讨论】:

      猜你喜欢
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 2013-03-14
      • 2017-12-12
      相关资源
      最近更新 更多