Cuando estamos desarrollando un sitio web constantemente modificamos el esquema de base de datos: se agregan algunas tablas, otras se modifican y las tablas innecesarias se eliminan. Administrar esquemas de base de datos puede convertirse en una tarea compleja por que necesitamos mantener actualizado nuestros servidores de desarrollo, prueba y producción. Podemos simplificar enormemente las tareas de administración de esquemas de base de datos con el concepto de migraciones.
Una migración es un tipo de cambio atómico del estado del esquema de base de datos. Podemos aplicar una migración para actualizar el esquema a su nuevo estado o podemos revertir una migración para colocar el esquema en su estado anterior. Creamos nuevas migraciones cuando desarrollamos nuestro sitio web y podemos tener tantas migraciones como necesitemos. Todas las migraciones del esquema de base de datos cambian el historial, lo que es muy conveniente, por que sabemos cuando y con que propósito cambió el esquema.