EF Core "миграции не найдены", несмотря на папку Migrations, содержащую файлы миграции - PullRequest
2 голосов
/ 25 февраля 2020

У нас есть. NET Базовый проект, настроенный с папкой Migrations, содержащей несколько миграций, которые мы смогли успешно запустить в нашей базе данных разработки в прошлом, выполнив dotnet ef database update. Однако сейчас мы пытаемся применить эти изменения к нашей промежуточной базе данных, и она не работает. Мы установили для нашей переменной ASPNETCORE_ENVIRONMENT env значение Staging, и когда мы пытаемся запустить миграцию, кажется, что она правильно настроена на Staging. Таблица dbo.__EFMigrationsHistory создана в нашей промежуточной базе данных, но в ней нет записей. Также, когда мы запускаем dotnet ef migrations list, мы получаем сообщение «Миграции не найдены». Даже если мы установим для переменной ASPNETCORE_ENVIRONMENT значение Development, мы получим тот же результат.

Мы выполнили все перечисленные выше команды dotnet ef с подробным флагом и не получили никаких ошибок. Единственный вывод, который может показаться подозрительным, это No referenced design-time services were found и No design-time services were found, но мы не смогли определить, что нам нужно сделать, чтобы исправить эти проблемы.

Когда мы запускаем dotnet ef migrations add <migration name>, он успешно генерирует файл миграции в папке Migrations, и когда мы запускаем dotnet ef migrations list, появляется новая миграция, поэтому кажется, что наши старые миграции находятся в правильном месте. dotnet ef по какой-то причине они просто не обнаруживаются.

В нашем .csproj есть следующие пакеты:

    <PackageReference Include="FlexLabs.EntityFrameworkCore.Upsert" Version="3.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.0" />
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
    <PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.113">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.0" />

Есть мысли о том, почему мы не можем запустить наши существующие миграции?

1 Ответ

0 голосов
/ 28 февраля 2020

Оказывается, эта ошибка была из-за отсутствия файлов Designer.cs. Мы удалили их из-за ответа в этом посте , но EF не смог найти наши миграции без них. Если вы планируете запускать миграции в других средах, не удаляйте файлы Designer!

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