Cache limits
File space is limited. Databases have a tendency to grow out of bounds, so if you're not careful, you'll end up with more database than you can store. PouchDB is particularly bad in this regard as it stores the revision history of every document. Whenever you make a change, you store both the old document and the new document.
Now, we know that the revision history exists to help us resolve conflicts gracefully in offline scenarios. However, to do this, we only need to save the leaves, the last revision of a document. Is there a graceful way to get rid of older revisions and save space?
Fortunately, the answer is yes. When you create a local PouchDB database, you can set the auto_compaction
option to make this behavior default whenever a document is written. Edit the Sync
controller and add the following variable definition to the init
method:
options = { auto_compaction: true },
Now, add this variable to each new PouchDB
statement in the method:
listStore.localDB = new PouchDB(...