Снимок команды EF Add-Migration предоставляет изменение схемы возврата - PullRequest
0 голосов
/ 28 ноября 2018

Я использую теоретически простую миграцию.Для моего метода up ():

    DropIndex("dbo.tableA", "IX_index_1");
    AddColumn("dbo.tableB", "column1", c => c.Int(nullable: false));
    DropColumn("dbo.tableA", "column2");

Однако при запуске миграции я получаю эту ошибку в консоли:

Unable to update database to match the current model because there are pending changes and automatic migration is disabled

Когда я запускаю

    Add-Migration

«Снимок» обеспечивает те же изменения схемы.Что является причиной этого??Благодарю вас.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Я хотел добавить то, что в конечном итоге выбрал я и моя команда.

Хотя я выбрал ответ MikeS в качестве выбранного, другое решение, которое мы нашли, - откат к последней стабильной миграции до начала ветокмешать друг другу, удалять новые миграции, а затем консолидировать проблемные миграции.

Команда Add-Migration автоматически подобрала необходимые изменения схемы, затем мы добавили нашу логику для передачи записей.

0 голосов
/ 28 ноября 2018

Это может произойти, если два человека создают миграции одновременно и регистрируют их независимо друг от друга.

Допустим, у вас есть 3 миграции A, B, C, проверенные в системе контроля версий.Два человека получают их и создают миграции D и E. Оба D и E имеют снимок схемы, которая включает изменения до C. Человек, который создал D, регистрируется, а затем человек, который создал E, получает последнюю версию.EF будет считать, что модель не синхронизирована, поскольку снимок в E не содержит D. Когда вы добавляете миграцию, он вычисляет все изменения из AE, включая D, и видит, что ничего нового не нужно делать, поэтому в миграции ничего нет.

Снимок хранится в файле resx при миграции.Если вы откроете его в редакторе xml, то увидите там снимок.

Способ исправить это - сохранить пустую миграцию, поскольку она не приносит никакого вреда, или человек, который сделал E, могудалите и воссоздайте их миграцию, чтобы их снимок включал изменения из D.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...