Entity Framework crea una migración vacía pero insiste en que mi modelo es diferente

Hoy es un dia triste. Lo primero que vi hoy fue la excepción de EF diciendo que "El modelo que respalda el contexto 'DomainContext' ha cambiado desde que se creó la base de datos.". Está cerca de la medianoche y todavía veo este error. Este es el final de mi carrera - (

Estoy bastante seguro de que nada ha cambiado en el modelo, sin embargo, apareció el error. He intentado crear una nueva migración, salió vacía:

public void Up()
{
}
public void Down()
{
}

La aplicación de esta migración no sirvió de nada: el error persistió. He usado sugerencias comunes para configurar el inicializador para que sea nulo:

Database.SetInitializer<DomainContext>(null);

E hizo que el error desapareciera cuando accedo a la base de datos. Pero esto me molesta mucho: cada vez que intento ejecutar migraciones a través del código, veo un error similar nuevamente:

var configuration = new Migrations.Configuration();

configuration.TargetDatabase = new DbConnectionInfo("correct connection string", "System.Data.SqlClient");

var migrator = new DbMigrator(configuration);

migrator.Update(); // <<-- exception is thrown here

El lanzamiento de excepción se ve así:System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException: no se puede actualizar la base de datos para que coincida con el modelo actual porque hay cambios pendientes y la migración automática está desactivada. Escriba los cambios pendientes del modelo en una migración basada en código o habilite la migración automática. Establezca DbMigrationsConfiguration.AutomaticMigrationsEnabled en true para habilitar la migración automática.

He actualizado a EF 6.1 (estaba en 6.0.2 antes), pero esto no hizo ninguna diferencia.

Otra cosa que me molesta es que puedo ejecutar migraciones a través de Nuget Console:

Update-Database

Funciona bien y no da ningún problema. Pero cuando configuro DB initialiser para ejecutar migraciones automáticamente:

var initializer = new MigrateDatabaseToLatestVersion<DomainContext, Migrations.Configuration>();
Database.SetInitializer(initializer);
var domainContext = new DomainContext();
domainContext.Database.Initialize(true); // <<-- this throws exception

No se puede actualizar la base de datos para que coincida con el modelo actual porque hay cambios pendientes y la migración automática está deshabilitada. Escriba los cambios pendientes del modelo en una migración basada en código o habilite la migración automática. Establezca DbMigrationsConfiguration.AutomaticMigrationsEnabled en true para habilitar la migración automática.

La verdadera pregunta es ¿por qué EF tiene hashes diferentes para los modelos cuando se ejecuta a través de la consola Nuget y a través de Migrations DB-Initialiser? ¿Cómo puedo averiguar qué es diferente (modelo de db-state)? ¿Y cómo solucionar esto, para que no tenga que usar hacks (asignar nulo a db-initaliser)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta