【发布时间】:2017-06-28 18:48:30
【问题描述】:
我有一种情况,我希望能够使用 Android Room 对我的数据库进行硬重置。使用SQLiteOpenHelper,我可以通过编写一个方法来删除所有表和索引,然后手动调用SQLiteOpenHelper.onCreate()。
我知道我可以通过房间访问SupportSQLiteOpenHelper 并自己放下所有桌子,但似乎没有一个开始娱乐过程的好方法。
另外,我知道我可以从每个表中删除每个项目而不删除它,但这不是我想要的。这不会重置自动递增的主键,因此新项目的“id”字段不会重置回 1。
谢谢!
编辑:
这是我希望能够在运行时任意做的事情。
编辑 2:
该方法应该是可维护的,即不涉及与 Room 的行为匹配的手写 SQL。理想情况下,会有某种方法检索 Room 生成的 SQL,或 SQLiteOpenHelper.onCreate() 等效方法。或任何其他解决此问题的方法! :)
【问题讨论】:
-
这是一个功能请求,除了 Room 开发人员之外,不是现在任何人都可以解决的问题。我也需要这个功能!
-
对于“另外,我知道我可以删除每个表中的每个项目而不删除它,但这不是我想要的。这不会重置自动递增的主键,所以新项目的“id”字段不会重置为 1。”你可以查看stackoverflow.com/a/45795870/3751576
标签: android android-room sqliteopenhelper