Explicación de los migradores (FluentMigrator)?

¿Alguien podría explicar el concepto de Migradores (específicamente migrante fluido)?

Aquí están los hechos (posiblemente confusos) que he recogido sobre el tema:

¿Es una forma de crear inicialmente y luego mantener las actualizaciones de una base de datos mediante la creación de versiones?

La primera migración (o la versión inicial de la base de datos) contendría todas las tablas, las relaciones y las propiedades requeridas (ya sea con fluidez o utilizando una porción de sql en un script).

Cuando desea impulsar un cambio en una base de datos, debe crear un nuevo método de migración (arriba y abajo), algo así como agregar una nueva tabla o modificar un campo.

Para implementar una de estas migraciones, debe usar una línea de comandos que especifique la dll que contiene la migración, la cadena de conexión y la versión requerida.

Si tuviera un conjunto bastante complejo de modelos de datos, ¿no sería bastante difícil y lento crear una definición de migración para todo eso?

Sé que con nHibernate / fluent puede generar fácilmente tablas para una base de datos sin tener que definir nada más que los modelos y los archivos de mapas. ¿Hay alguna manera de hacer que esta configuración sea compatible con el Migrator / Versioning?

Cuando nhibernate / fluent se encarga de generar una base de datos, no necesariamente tengo que definir cada aspecto de las tablas. Se hace por convención o por los archivos de mapeo. ¿Con los migradores necesitaría definir este nivel de detalle?

Respuestas a la pregunta(1)

Su respuesta a la pregunta