Я создаю приложение с существующим файлом базы данных. После первого запуска БД копируется из папки asstets. Я хотел бы иметь возможность заменить базу данных, но только если она изменилась. Я пытался использовать параметр версии в функции openDatabase (), но он не работает.
initDB() async {
String databasesPath = await getDatabasesPath();
String path = join(databasesPath, 'db.sqlite');
Database db;
try {
db = await openDatabase(path, readOnly: false);
} catch (e) {
print("Error $e");
}
if (db == null) {
// Should happen only the first time you launch your application
print("Creating new copy from asset");
// Copy from asset
ByteData data = await rootBundle.load(join("assets", "db.sqlite"));
List<int> bytes =
data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
await new File(path).writeAsBytes(bytes);
// open the database
db = await openDatabase(path, readOnly: false);
} else {
print("Opening existing database");
}
return db;
}