首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqflite数据在app更新/升级后丢失

Sqflite数据在app更新/升级后丢失
EN

Stack Overflow用户
提问于 2022-04-14 13:21:45
回答 1查看 213关注 0票数 0

我正在构建一个应用程序,它使用平方米^2.0.2将数据存储为本地数据库。

一切正常,但是在更新设备上的应用程序时出现了问题:--所有数据都丢失了。似乎一旦升级或重新安装应用程序,数据库就会被删除。在Android仿真器上,它的行为是一样的。

我已经尝试过在AndroidManifest.xml,中添加android:allowBackup="true",即使--就像文档声明的那样--应该备份数据库,它仍然不能工作。

由于数据库结构没有更新,但只有实际的颤振应用程序才是,所以数据库版本应该保持为1 (?)。

代码语言:javascript
复制
static Future<Database> init() async {
  WidgetsFlutterBinding.ensureInitialized();

  final database = openDatabase(
    join(await getDatabasesPath(), 'myDatabase.db'),
    onCreate: (db, version) {
      return db.execute(
        'CREATE TABLE myOrders (id TEXT PRIMARY KEY, name TEXT, quant INTEGER)',
      );
    },
    version: 1, 
  );
  return database;
}

上面的代码初始化我的DB,join()返回折叠路径:/data/user/0/com.example.myapp/databases/myDatabase.db

不幸的是,这并没有帮助:https://stackoverflow.com/a/62845264/11442598

我是不是遗漏了什么?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-21 08:55:17

问题解决了。

首先,我尝试使用提供程序来确保每次数据库都使用正确的路径。这并不奏效,但对iOS 按建议 方辉石来说,这仍然是一个很好的实践。

下一步是将数据库重命名为其他内容,可能还有一个DB (?)实例。

然后我删除并下载了我的安卓仿真器,选择了一个有安装了Google Play的。

最后,我添加了

代码语言:javascript
复制
<application android:allowBackup="true"/>

AndroidManifest.xml中的字符串

我在所有这些操作之间运行了一个flutter cleanflutter pub get

经过几次尝试,数据不再丢失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71872346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档