Comments (2)
Hey @lon9man sorry for not responding to this. My GitHub status at the time mentioned I was taking a break from OSS due to toxicity and abuse. Coming back now per my current status.
Getting to the question at hand, this is a schema change / migration question. #23 actually talks about multiple ways to do migrations -- very similar to how DBs handle it. I've reworded the title to mention this.
One way could indeed be to clear all storage as you suggest and just start from scratch. If the offline data can be easily retrieved, resetting in that fashion may be a good option.
Another way would be to run a migration when a schema change is detected. Effectively, this would be the same as back-end DB schema migration, but done client-side on pure JSON (or JS objects if #23 is implemented). Each migration would likely have to be hand-coded, there isn't necessarily a simple way to automatically figure out what to do when a schema changes (same as with a DB).
Backward-compatible migrations are a whole topic in DBs with multiple ways of achieving them, so I can't really describe that with the depth it requires in an issue. Some examples include adding defaults, splitting into multiple migrations, etc.
I would recommend thinking of your persisted information as a secondary DB or cache; you can model interactions with persisted data fairly similarly to that of a back-end DB or cache.
from mst-persist.
any ideas?
from mst-persist.
Related Issues (20)
- `storage` type should be more specific
- Add CI
- CJS export is missing __esModule - Code transpiled to CJS can't use default export HOT 3
- Docs should mention that mst-persist is compatible with redux-persist's Storage Engines
- options.jsonify is always forced to true HOT 2
- When using AsyncLocalStorage, "Illegal invocation" error occurs HOT 3
- `persist` should return disposer
- [RFC] Transforms & Migrations (& Plugins?) HOT 2
- Initial State isn't merged -- undefined is not assignable to type HOT 2
- Persist changed value from `true` to `false` HOT 3
- Add Deep Whitelists & Blacklists HOT 5
- add expiration time? HOT 2
- Persist Array in React Native, empty string? -- can't repro HOT 3
- jest failing on react-scripts - needs a CJS build HOT 9
- data not saved when using `blacklist` or `whitelist` -- can't repro HOT 1
- mst peerDep is outdated HOT 3
- Add tests HOT 2
- Add configurable merge strategies HOT 3
- Refactor to TypeScript / Add typings
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mst-persist.