У нас есть проект под SCM.Когда я собираю его со своей машины и публикую на удаленном сервере через msdeploy все работает нормально.
Когда мой коллега пытается сделать то же самое с тем же проектом, только что полученным из SCM, на удаленном сервере fr amework 4.3.1 DbMigrator
выдает:
Автоматическая миграция не применялась, так как это может привести к потере данных.
Как оказалось, человек, который делает первоначальную публикацию на удаленном сервере, является «победителем». Если мы сбросим базу данных на удаленный сервер, то мой коллега сможет опубликовать ее, а меня заблокируют. Мои публикации приводят к той же ошибке, что и выше.
Конфигурация для 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
и неприятно выглядящей длинной шестнадцатеричной строкой, хранящейся в ее строках. .
Я не хочу брать на себя полную ответственность за публикацию в прямом эфире. На что я могу обратить внимание?