A.K.M. Arifur Rahman
A.K.M. Arifur Rahman

Reputation: 91

Backup and Restore Flutter SQFlite database

I wanted to back up my Flutter SQFlite database to mobile. And i need to restore the database in existing app. I am searching on internet but did not get any proper tutorial or document. Anyone please help!!! Thanks in advance.

Upvotes: 1

Views: 1477

Answers (1)

Sohel Akhtar
Sohel Akhtar

Reputation: 107

Demo app

For complete details, go to link

ElevatedButton(
          onPressed: () async {
            final dbFolder = await getDatabasesPath();
            File source1 = File('$dbFolder/doggie_database.db');

            Directory copyTo =
                Directory("storage/emulated/0/Sqlite Backup");
            if ((await copyTo.exists())) {
              // print("Path exist");
              var status = await Permission.storage.status;
              if (!status.isGranted) {
                await Permission.storage.request();
              }
            } else {
              print("not exist");
              if (await Permission.storage.request().isGranted) {
                // Either the permission was already granted before or the user just granted it.
                await copyTo.create();
              } else {
                print('Please give permission');
              }
            }

            String newPath = "${copyTo.path}/doggie_database.db";
            await source1.copy(newPath);

            setState(() {
              message = 'Successfully Copied DB';
            });
          },
          child: const Text('Copy DB'),
        ),
        
        ElevatedButton(
          onPressed: () async {
            var databasesPath = await getDatabasesPath();
            var dbPath = join(databasesPath, 'doggie_database.db');

            FilePickerResult? result =
                await FilePicker.platform.pickFiles();

            if (result != null) {
              File source = File(result.files.single.path!);
              await source.copy(dbPath);
              setState(() {
              message = 'Successfully Restored DB';
            });
            } else {
              // User canceled the picker

            }
          },
          child: const Text('Restore DB'),
        ),

Upvotes: 1

Related Questions