Как лучше всего свернуть все существующие миграции Entity Framework
Проект, над которым я работаю, использует Entity Framework 4.3 и миграции данных, чтобы поддерживать схему в актуальном состоянии. За время работы над проектом папка migrations выросла и теперь насчитывает более 600 файлов. Это очень важно. Теперь у нас есть двоичный файл, который превышает 12 МБ из-за всех метаданных миграции.
Я хотел бы свернуть все это в одну миграцию и начать все сначала. Меня беспокоит следующее:
- Возможно ли это или это вызовет проблемы с историей миграции, если я удалю миграции?
- Есть ли какие-либо руководства, описывающие, как это сделать?
2 ответа:
Во-первых: я рекомендую хранить ваши миграции в отдельной сборке, чтобы они не публиковались вместе с приложением. Это может быть простое консольное приложение, которое применяет миграции, или графический интерфейс winforms, который генерирует сценарии. Но нет никаких причин для его развертывания с приложением imo.
Во-вторых: понимая, что вы отказываетесь от возможности отката к предыдущим версиям, вы можете просто исключить из проекта все предыдущие миграции, а затем создать новую который затем должен иметь возможность создать базу данных, отражающую вашу текущую модель. Это послужит вам новой отправной точкой. Помните, что EF не всегда генерирует код, чтобы сделать все, что вы хотите в миграции, поэтому у вас может быть какой-то рукописный код миграции в других миграциях, которые вам нужно будет использовать.