I don't know much about migrations, but this is a specific question I'm not sure how to answer.
In production, how can one change the database format/schema when there is already user data in there? (Is the answer different for our Meteor app on MongoDB vs our master Postgres database?) Basically, if you write new code that introduces a new field, and new code that expects that new field to be present, then the system will not work when pulling data from the database that was there prior to the changeover.
For Mongo at least, a possible solution is to write a script to update the database layout with the data in it, but I wonder if this is too error prone for a production database, and infeasible when you just don't have the necessary information (like if you didn't collect a certain info field from the user before.)