КонтекстPouchDB: Ясно LocalDB, когда это безопасно на remoteDB
Я использую PouchDB и имеют LocalDB с помощью индексированной. Я постоянно тиражирование этой локальной БД с удаленной БД (CouchDB) с этой функцией:
function replLocalToRemote() {
this.meta.localDB.replicate.to(this.meta.remoteDB, {
// Live: replication occurs as the changes are detected
live: true,
retry: true,
}).on('paused', function (info) {
console.log('paused', info);
// replication was paused, usually because of a lost connection
}).on('change', function (change) {
console.log('change', change);
// yo, something changed!
}).on('active', function (info) {
console.log('active', info);
// replication was resumed
}).on('error', function (err) {
alert('replication failed. Retry... ', err);
// totally unhandled error (shouldn't happen)
});
}
Это работает хорошо, но проблемы возникают, когда есть слишком много данных на устройстве. Особенно в IOS, где Safari постоянно открывает всплывающие окна, чтобы попросить больше хранить данные (начиная с 5Mo).
Вопрос
Так что я хотел бы, чтобы очистить LocalDB как я скопировать его на remoteDB. Например, удалите документ на локальном компьютере, как только он будет удален, и продолжите репликацию, даже если на удаленном компьютере больше данных, чем на локальном.
Возможно ли это?
Не совсем ответ на ваш вопрос, но вы можете избежать всплывающих окон и проблемы нехватки хранилища, используя базу данных SQLite вместо IndexedDB и WebSQL. См. Плагин _SQLite для раздела Cordova/PhoneGap_ [здесь] (https://pouchdb.com/adapters.html). – Phonolog
@Phonolog Интересно, но мое приложение не приложение Cordova/PhoneGap. – hhh
Хм еще идея: удалите свою базу данных, если в ней слишком много данных (или, допустим, каждый день/неделя/месяц) и создайте новую. Скопируйте новый на свой удаленный db ... – Phonolog