У нас есть проект под SCM. Когда я создаю его с моей машины и публикую на удаленном сервере через msdeploy, все работает нормально.
Когда мой коллега пытается сделать то же самое с тем же проектом, который был недавно вытащен из SCM, на платформе сущности удаленного сервера 4.3.1 DbMigrator
throws:
Автоматическая миграция не была применена, так как это приведет к потере данных.
Как выясняется, кажется, что человек, который делает первоначальное опубликование на удаленном сервере, является "победителем". Если мы отбросим базу данных на удаленном сервере, тогда мой коллега может опубликовать и заблокировать. Мои публикации приводят к той же ошибке выше.
Конфигурация для DbMigrator
выглядит примерно так:
var dbMgConfig = new DbMigrationsConfiguration()
{
AutomaticMigrationsEnabled = true,
//***DO NOT REMOVE THIS LINE,
//DATA WILL BE LOST ON A BREAKING SCHEMA CHANGE,
//TALK TO OTHER PARTIES INVOLVED IF THIS LINE IS CAUSING PROBLEMS
AutomaticMigrationDataLossAllowed=false,
//***DO NOT REMOVE THIS LINE,
ContextType = typeof(TPSContext),
MigrationsNamespace = "TPS.Migrations",
MigrationsAssembly = Assembly.GetExecutingAssembly()
};
Я предполагаю, что это как-то связано с новой таблицей __MigrationHistory
и гадкой длинной шестнадцатеричной строкой, хранящейся в ее строках.
Я не хочу полностью отвечать за публикацию вживую. О чем я могу смотреть?