createBackup method

Future<String> createBackup(
  1. String databaseIdentifier
)

Implementation

Future<String> createBackup(String databaseIdentifier) async {
  final Map<String, List<Map<String, dynamic>>> fullDump = {};

  final tables = await adapter.getTables();
  for (final table in tables) {
    final records = await adapter.getRecords(table);
    fullDump[table] = records;
  }

  final jsonString = jsonEncode(fullDump);
  final tempDir = await getTemporaryDirectory();
  final timestamp = DateTime.now().millisecondsSinceEpoch;
  final file = File(
    '${tempDir.path}/backup_${databaseIdentifier}_$timestamp.json',
  );
  await file.writeAsString(jsonString);

  return file.path;
}