Приложение Cordova, использующее ограничение квоты в WebSQL, не может восстановить

Я столкнулся с проблемой ограничения квот на iOS с использованием стандартного Cordova WebSQL (с плагином MS OpenTech polyfill, но я не думаю, что он на самом деле использует это на iOS).

В WebSQL выдается ошибка, указывающая на превышение квоты. Когда это происходит, я улавливаю ошибку и сбрасываю основную таблицу, а затем обновляю ее из Интернета.

Однако, когда он достигает предела квоты, он либо не позволит drop table оператор, чтобы продолжить, или оператор отбрасывания не освобождает место, потому что ошибка квоты все еще продолжает появляться. Кто-нибудь знает, почему падение стола не освободит место? Я также попробовал vacuum утверждение, которое некоторое время думает, но, похоже, не освобождает и места.

Обратите внимание, что это существующее приложение в этой области, поэтому я предпочел бы не переключать платформу базы данных, если в этом нет необходимости. (Я вижу, что сейчас доступен плагин ( https://github.com/litehelpers/cordova-sqlite-ext), который говорит, что у него нет ограничения квоты - может быть лучшим / единственным решением?)

1 ответ

Я решил заменить свой WebSQL по умолчанию на плагин https://github.com/litehelpers/cordova-sqlite-ext

Все прошло очень хорошо. Этот плагин заменен без каких-либо изменений кода, необходимых в моих SQL-выражениях!!! Очень рад!

Я протестировал добавление пары ГБ данных в базу данных, и она работала очень хорошо и ни разу не прекратила принимать данные.

Кстати, я протестировал ограничения по умолчанию для WebSQL на iOS и обнаружил, что он умирает точно в кучу на 50 МБ. Вы не можете удалить любые данные, удалить или очистить с этой точки, и поэтому вы никогда не сможете восстановить. Это довольно серьезная ошибка! (Это все еще рекомендуется в качестве опции на документах Cordova - должно быть с серьезным предупреждением)

Другие вопросы по тегам