关于如何从csv,从另一个数据库等在内部数据库上导入数据的文章很多。但是我还没有找到任何人解释如何导出flutter数据库。
目标是为每个手机创建一个备份。 (因此,我需要了解它的位置以创建备份)
答案 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应用程序中是否有所不同。
希望有帮助。