Flutter — обновленный прикрепленный файл БД не может получить последние значения базы данных?

#database #flutter #sqlite #dart #sqflite

#База данных #flutter #sqlite #dart #sqflite

Вопрос:

Я пытался извлечь свою базу данных sqlite из ресурсов, используя пакет sqflite,

Он работал нормально, у меня был добавлен 1 курс в flutter версии 1, который я уже загрузил в свой Play Store ранее.

Теперь мне нужно добавить еще 2 курса в мой файл базы данных sqlite asset. Но, когда я пытаюсь запустить приложение и получить последнюю базу данных. Он не извлекается из базы данных.

 class DatabaseHelper {
  static DatabaseHelper _instance = DatabaseHelper();
  DatabaseHelper get dbHelper => _instance;
  static Database _appDatabase;

  Database get appDatabase {
    return _appDatabase;
  }

  initDatabase() async {
    var databasesPath = await getDatabasesPath();
    var path = join(databasesPath, DBName);

    // Check if the database exists
    var exists = await databaseExists(path);
    if (!exists) {
      // Should happen only the first time you launch your application
      print("DB Success : Creating new copy from asset => ${path}");

      try {
        // Make sure the parent directory exists
        await Directory(dirname(path)).create(recursive: true);
      } catch (e) {
        print("DB Init Error : ${e.toString()}");
      }

      // Copy from asset
      ByteData data = await rootBundle.load(join("assets", "database", DBName));
      List<int> bytes =
          data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);

      // Write and flush the bytes written
      await File(path).writeAsBytes(bytes, flush: true);
    } else {
      print("DB Success : Opening existing database => ${path}");
    }
    // open the database
    _appDatabase = await openDatabase(path);
  }
}

What to do to fetch the latest DB updates from the assets file?

Let me know possible solutions except uninstalling the whole app every time I update/add new courses in DB

Thanks