My app uses a preloaded SQLLite database with coredata bindings. I create the preloaded database file with a secondary app that has the core data bindings/model etc. I put the preloaded db into my app’s resources folder and copy that to the writable documents folder when the app is first run.
My question is about migration. Since my app released, my users have been creating data and in my next release I want to change the data model and migrate some of the data to the new model. I’m just not sure the best way to do this. I’ve read about core data migration methods but they seem to require my app to be a core data project, which it isn’t (though my secondary database-creating app is). Will I have to do this migration manually by issuing direct SQL statements against the db? And what about the core data bindings, will I have to manually update them?
I’m really just looking for pointers in the right/best direction. Any suggestions? Thanks in advance!
SQLLite doesn’t really have any data migration tools like Core Data. Unless you count “ALTER TABLE”. If the migration is very complex, or you think you will have more complex migrations in the future you could make a Core Data model that more or less lines up with the old SQLite model and import to it, and then migrate to a newer Core Data model, and then stick with it.
This is likely slower then ALTER TABLE though, or at the very least “not faster”.