I’ve just started to play around with Darkstar and have been really impressed so far. I have some questions as to how to handle ManagedObjects during a standard development lifecycle.
So let’s say I have my first AppListener object. I make it’s initialize method and create a channel object. This works fine for my application but a week later I realize I want my AppListener to create two channels instead of one on initialize. I update my code and all looks well, except that initialize will never been called again during the lifetime of my existing AppListener. It seems in order to “upgrade” my server, I have to delete the database and start from scratch.
So my question is, in a live development environment with lot’s of parallel developmenet updating ManagedObjects it is necessary to have an upgrade path for your persistance data. In real world projects I’ve worked on where the persistance layer was a standard DB (such as postgres), this was often done with scripts that would upgrade the DB schema to the latest version so that the latest code could read & write persisted objects into it.
I’m sure you’ve thought about this issue, I’m just wondering what the suggested method of handling this is?
Thanks!