#database #flutter #sqlite #dart #sqflite
#База данных #flutter #sqlite #dart #sqflite
Вопрос:
Я пытался извлечь свою базу данных sqlite из ресурсов, используя пакет sqflite,
Теперь мне нужно добавить еще 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