sqlite's user_version is so nice for migrations

no need to fuck around with a whole ass migration table. Good Enough migrations are 20 lines of code (if you don't need down-migrations (just make a new one that inverts the up-migration), or don't have a total ordering of what migrations are applied ("if transaction x is applied, transaction x-1 must have been applied". can happen during development, but by the time a transaction hits a database you can't just blow away, you should have the code checked-in and in a linear ordering))