我可以从Flutter导出我的sqlite数据库吗?

时间:2019-06-06 11:56:20

标签: android sqlite flutter

关于如何从csv,从另一个数据库等在内部数据库上导入数据的文章很多。但是我还没有找到任何人解释如何导出flutter数据库。

目标是为每个手机创建一个备份。 (因此,我需要了解它的位置以创建备份)

4 个答案:

答案 0 :(得分:3)

我假设您正在使用sqflite插件进行SQLite操作,并使用path_provider进行存储。可以使用

找到数据库的路径
String path = await getDatabasesPath(); // which is data/data/<package_name>/databases

此外,sqflite插件不提供任何导入/导出数据库的方法,这是一个开放的issue,如果您确实要这样做,则必须使用{ {1}},这是Android和AFAIK的解决方案,在iOS中无法实现。

答案 1 :(得分:2)

如果你使用Sqlite创建数据库:

第一步:当你创建数据库时,你为它设置了一个目录,你可以像这样使用path_provider:

var dir = await getApplicationDocumentsDirectory();
_dbPath = dir.path + '/$dbName';

现在你知道它是什么目录和路径了。

第 2 步:然后使用 flutter_archive 插件压缩文件(这会将文件压缩到一个目录中,即您的数据库);

第 3 步:使用 flutter_email_sender 通过电子邮件发送,如下所示:

final email = Email(
      body: 'content',
      subject: 'content',
      recipients: ['email'],
      cc: ['email'],
      attachmentPaths: [exportPath],
      isHTML: false,
    );
    await FlutterEmailSender.send(email);

您需要提供 exportPath,这是您设置的 zip 文件路径。

它对我们有用,希望这能帮助其他人!

答案 2 :(得分:0)

您可能正在寻找这个:

以下是有关exporting SQLite.的信息

答案 3 :(得分:0)

通常在Android上,数据库存储在    /data/data/your.app.signature.here/databases/。 但是我不知道在Flutter应用程序中是否有所不同。

希望有帮助。