android - 如何在 ActiveAndroid 中删除并重新创建有关数据库版本更新的所有表?

标签 android mysql database database-migration activeandroid

我在应用程序中使用 ActiveAndroid 作为数据库系统。在当前阶段,我不想编写迁移文件以在更新数据库版本时将当前表迁移到更改的表。

相反,我想要做的是删除所有表并重新创建一组新表。

不幸的是,通过挖掘 ActiveAndroidDatabase 版本测试发生在初始化阶段,其中我传递了 ActiveAndroid Configuration 对象来配置数据库

此时,他们的实现仅检查 Assets 文件夹中的迁移文件。我不介意创建迁移文件来执行我需要的操作,但问题是我不知道如何在数据库中初始化当前表以重新创建它们。

有人知道如何使用 ActiveAndroid 做到这一点吗?

最佳答案

不确定我是否理解正确,但如果您正在开发中,那么最简单的方法就是卸载该应用程序,并在您再次安装它时让 Active Android 重新创建数据库架构。

在生产中,您需要使用迁移脚本 documentation

我遇到了类似的问题,我需要强制重新创建一些表。不幸的是,您需要手动执行此操作。不过,您可以使用 ActiveAndroid 帮助程序类来帮助您。

  1. 首先,您需要以某种方式处理旧表数据。
  2. 删除表格:

    SQLiteUtils.execSql("如果存在Your_Table_Name则删除表");

  3. 使用 ActiveAndroid 类重新创建表。

    SQLiteUtils.execSql(SQLiteUtils.createTableDefinition(Cache.getTableInfo(YOUR_MODEL_CLASS.class)));

  4. 将旧数据插入新创建的表中。

关于android - 如何在 ActiveAndroid 中删除并重新创建有关数据库版本更新的所有表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34495753/

相关文章:

android - 如何实现 getSupportParentActivityIntent() 以在 android 中为向上按钮动态设置 Activity

java - 安卓软键盘大小

java - 如何在android中没有JSON对象值的情况下获取JSON数组值?是否可以?

php - MYSQL/Ajax/PHP 生成的下拉列表不通过 'GET' 传递值

php - CodeIgniter/JQuery/MySQL 日期时间

mysql - SQL 连接表、聚合范围内的列

mysql - 在 MySQL 中设置最终一致性(延迟提交)

php - 简单关系型数据库——高效查询

android - 使用 Volley 在 HashMap 中发送 Int

php - 导出数据库和 WordPress 主题无法正常运行