Почему EF Core выдает «База данных уже существует»? - PullRequest
0 голосов
/ 11 декабря 2018

Мои условия запуска:

  1. У меня есть приложение на .Net Core, использующее EF Core (оба 2.2);
  2. У меня есть существующая база данных на локальном SQLServer;
  3. Я использую встроенный DI для предоставления моего DbContext: services.AddDbContext<MyDbContext>(options => options.UseSqlServer(connectionString));
  4. Я использую Fluent API для настройки моего контекста (пустой метод для запуска с) и конструктор DbContextOptions<MyDbContext> options;
  5. У меня несколько миграций из других проектов , существующих в базе данных и , не существующих в моем текущем проекте .

Использование всехиз упомянутого я выполняю (dotenet ef migrations add Initial --project ../MyDALProject) на пустой модели, чтобы получить пустую начальную миграцию.Это отлично работает.Затем я запускаю dotenet ef database update --project ../MyDALProject, чтобы применить эту пустую миграцию к базе данных.Тем не менее, я получаю «База данных« TargetDatabase »уже существует. Выберите другое имя базы данных» .

Кстати: другие проекты работают с тем же Db так же хорошо.

В чем может быть проблема?Как заставить это работать?

PS: контексты других проектов, как я уже упоминал, были добавлены в леса и сопоставлены с некоторыми существующими таблицами.После эшафот миграции и обновления работают как положено.Проблема заключается только в этом проекте, который приведет новые таблицы к существующей базе данных.

1 Ответ

0 голосов
/ 12 декабря 2018

В конце концов, я решил применить сценарии к базе данных вручную, а затем обнаружил, что база данных недоступна ... Наконец, я восстановил ее, и все отлично заработало.

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