4 ms·
This is written by someone who doesn't know what Core Data is, or how it persists its objects. It's funny to see how they try to guess what various columns are
by LeoNatan25 7y ago
This is written by someone who doesn't know what Core Data is, or how it persists its objects. It's funny to see how they try to guess what various columns are and how data is formatted. They could have just imported the database file into Core Data and extract the model from there, load the entities, run sophisticated queries in an acceptable syntax, etc.
- carlob 7y agoOr maybe this was written by someone who was more interested in showing how to use sqlite and pandas directly to do this? On the other hand I find it interesting that Apple decided it was important to create some shim on top of sqlite with their own conventions, but said shim is not so convoluted it can't be reverse-engineered. Can't really decide if it's good or bad.
- vbezhenar 7y agoCore Data actually supports multiple backends and SQLite is only one of them (probably most popular though).
- LeoNatan25 7y agoCore Data is an object-graph persistence framework, not a database. As said in the other comment, Core Data is an implementation detail, and there are other backends to choose from. Apple adds additional metadata on top of the entities themselves in order to provide smart versioning and migration utilities. The entire object model is persisted inside the database, so that lightweight and heavyweight migration patterns can be deduced the next time the database is read. This metadata can also assist with opening WhatsApp's database and parsing it using Core Data.