Я получаю исключение, когда пытаюсь обновить мою базу данных indexedDB с более высокой версией, чем в настоящее время браузер, , но смешная часть прерывания - это то, что она обновляется. Это по дизайну или я сделал что-то неправильно.Исключение Dart при обновлении IndexedDB
Я получил большое вдохновение от образца дротика Todo, поэтому мой код оказался таким.
void open_db(String DB_name, int Version, String Store_Name){
var request = window.indexedDB.open(DB_name, Version);
request.on.success.add((e) => _onDbOpened(request.result));
request.on.error.add((e) => print("Error opening db"));
request.on.upgradeNeeded.add((e) => _onUpgradeNeeded(request.transaction, Store_Name));
}
void _onDbOpened(IDBDatabase db){
_db = db;
print("DB opened");
}
void _onUpgradeNeeded(IDBTransaction changeVersionTransaction, String Store_Name){
changeVersionTransaction.on.error.add((e) => print("Error upgrading db"));
changeVersionTransaction.on.complete.add((e) => print("Success upgrading db"));
changeVersionTransaction.db.createObjectStore(Store_Name);
}
Когда я запускаю это с версией = 4 и браузер только версия = 3, то она переходит к _onUpgradeNeeded, как и ожидалось, но я получаю IDBDatabaseException с сообщением: «ConstraintError: DOM Exception IDBDatabase 4».
Так где же я ошибаюсь?
Это Dartium или dart2js? –
Я использую Дартиум. –
Помог ли ответ ниже? Все еще в беде? –