EF Core Migration - несколько баз данных - PullRequest
4 голосов
/ 12 марта 2019

Есть ли способ запустить миграцию EF Core на нескольких базах данных, имеющих одинаковый набор таблиц. Это для многопользовательской архитектуры, где есть основная база данных (содержит метаданные всех баз данных арендатора, включая строку подключения к базе данных арендатора) и одна база данных на каждого арендатора, имеющего одинаковый набор объектов базы данных. Нам нужно иметь возможность запускать эти миграции, когда автоматически создается новая база данных клиентов в модели SaaS, а также запускать эти миграции всякий раз, когда происходят изменения в структуре базы данных (новые столбцы, изменения типов данных, новые индексы и т. Д.)

1 Ответ

2 голосов
/ 15 марта 2019

Я отправил точно такой же вопрос на EF Core's GitHub .

Ответ таков: это невозможно сделать во время разработки.В основном вам необходимо запускать сценарии миграции вручную в базе данных каждого клиента.

Однако выполнить миграцию во время выполнения очень просто.Вы можете создать экземпляр dbContext для каждой из строк подключения при запуске приложения (до WebHost.Run () , если это веб-приложение) и выполнить свои миграции следующим образом: dbContext.Database.Migrate ();

Конечно, это не идеально, потому что вам труднее откатывать миграции до определенной точки с помощью консоли диспетчера пакетов Visual Studio или интерфейса командной строки, используя dotnet ef команды.

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