> Erm. Can you create a NOT NULL Column without a default in an ALTER > Statement? I know you can't in MSSQL.
It worked fine for me in MySQL... Not sure, although a change in the code would be trivial. The other point you make is the sort of versioning of the transition file. I see your point, and had thought about it while I was designing this out. I decided to ignore versioning for about three reasons: For one, I decided that instead of releasing transition files, the database managers themselves should be producing the transition files. So each "user" of your FooApp would manage it themselves, create their own transition file, and apply it. Secondly, I don't know how to store what version of the model is represented in the database. At the beginning I envisioned the transition file to have a Version(<number>) directive that would identify groupings of the changes that would be required to get to that version of the model. So you could have, for instance up to Version(5) in the transition file; then if you needed to get from version 2 to version 5, you'd execute all the changes between the directives after Version(2) up to Version(5). Thirdly, this whole versioning thing required much more time. The best thing about my solution currently is that it works. I can, at this very moment, change my model without erasing all my data in the app. That's usefulness.
