Explicação dos migrantes (FluentMigrator)?

Alguém poderia explicar o conceito de migradores (especificamente fluentmigrator)?

Aqui estão os fatos (possivelmente confusos) que eu recolhi sobre o assunto:

É uma maneira de criar inicialmente e, em seguida, manter atualizações para um banco de dados por meio de controle de versão.

A primeira migração (ou versão inicial do banco de dados) conteria todas as tabelas, relações e propriedades necessárias (feitas de forma fluente ou usando um pedaço de sql em um script).

Quando você quiser enviar uma alteração para um banco de dados, crie um novo método de migração (para cima e para baixo), algo como adicionar uma nova tabela ou modificar um campo.

Para implantar uma dessas migrações, você usaria uma linha de comando especificando a dll contendo a migração, a cadeia de conexão e a versão necessária.

Se você tivesse um conjunto bastante complexo de modelos de dados, não seria difícil e demorado criar uma definição de migração para tudo isso?

Eu sei que com nHibernate / fluent você pode facilmente gerar tabelas para um banco de dados sem ter que definir nada além dos modelos e arquivos de mapa. Existe uma maneira de tornar essa configuração compatível com o Migrator / Versioning?

Quando nhibernate / fluent é responsável por gerar um banco de dados, eu não necessariamente preciso definir todos os aspectos das tabelas. É feito por convenção ou pelos arquivos de mapeamento. Com os migradores, precisaria definir esse nível de detalhe?

questionAnswers(1)

yourAnswerToTheQuestion