I am about to embark on the development of a web application project.
I'd like to get something up early and often for early adopters to play with and feedback.
But I envisage the data model changing as the project progresses and my understanding of the system improves.
How should I manage the dilemma of updating the data model appropriately and preventing data loss for early adopters? Should I simply put up a big warning saying "user beware", or should I put in the effort to create migration scripts?
Analyze the relationship between entities and Create foreign key relationship (one to many or many to many) between those entities. Create subject areas and add relevant entities to those subject areas. Align the objects in the main subject area and other subject areas. Validate the data model.
What platform are you using? Ruby on Rails gives you migration scripts as part of the package. If you're in Java-land, you might want to check out migrate4j.
In the end, I'd suggest doing both things: Warn your users that they're using alpha software, and employ migration scripts with the intent of preserving their data whenever you can (lest they become peeved and lose interest).
Scott Ambler has written some nice stuff about agile databases. There's a book and a website.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With