Насколько я знаю, у EF нет ничего подготовленного для вашего случая, очень сложно выполнять миграции туда и обратно в продукте, также вы должны учитывать, что многие миграции могут привести к потере данных.
Сначала вам нужно создать процесс, когда изменение должно быть очень хорошо протестировано, когда изменение попадет в производство, вы должны быть на 99% уверены, что в продукте не будет откатов.
Как вы говорите, вам понадобится последняя версия кода, в противном случае EF не будет знать, что делать "вниз".
В нашей текущей системе мы анализируем каждую миграцию, если это новая таблица или что-то простое, мы просто запускаем миграцию из CI. Если это что-то более сложное или нам нужны более сложные перемещения (модификации таблиц с миллионами строк), мы просто делаем это вручную, поэтому мы можем отправлять данные во временные таблицы, заполнять пустые данные или работать со специальными функциями, которые мы просто сгенерируйте сценарий и работайте с ним.
dotnet ef migrations script 20190725054716_Add_new_tables
Это действительно сложная проблема, Java и JPA разделяет ту же проблему при создании истории.
Эти миграции генераторы отлично подходят для разработки, но трудны для производства, меняющейся среды, особенно когда вам нужно go вперед и назад, как вы, другой вариант - использовать другие инструменты для обработки миграций, которые лучше подготовлены для этого сценария, например Liquibase
Еще одну идею можно найти здесь :
В итоге я создал специальный инструмент, который интеллектуально выполнял миграции и автоматически определял, какая модель ( context) сборка для использования при миграции.