Entity Framework Code Первые миграции баз данных - несколько экземпляров APP с одним сервером БД - PullRequest
0 голосов
/ 26 апреля 2020

Таким образом, переход от подхода к разработке / развертыванию

  • Наличие БД под управлением исходным кодом и конвейер развертывания для определенных c версий БД
  • Наличие веб-приложения / API под управлением исходного кода и для них есть конвейеры развертывания;

и затем иметь зависимости Web APP / API от версий БД - следовательно, чтобы добавить новое изменение БД, например, мы должны сделать выпуск БД; перед тем, как мы выпустим приложение - и изменение БД не должно «сломать» старое приложение, - а затем мы можем обновить приложение, чтобы использовать новое изменение БД

Хотя болезненно - это работает; он также работает, когда у вас есть N серверов для веб-приложения (в горизонтальном масштабе) с подходящим SINGLE DB Server.

Теперь работа над кодом EF Core 3.1 Сначала с использованием миграции данных. Все работает как положено, одно веб-приложение с одной БД.

Но - если это было развернуто на N веб-серверах, опять же с одним экземпляром БД; Затем .....

  • "ЕСЛИ" веб-серверы обновлялись по одному за раз, после чего происходила миграция данных при запуске первого "нового" приложения - и, возможно, старые веб-приложения могли бы продолжить работу (зависит от изменений)

Выше не совсем моя забота; это

  • Если у вас есть одновременное развертывание на нескольких серверах веб-приложений, и эти приложения запускаются одновременно; тогда я представляю, что перенос данных будет предприниматься одновременно ... то есть один из них должен потерпеть неудачу.

Итак: 64 000 долларов Вопрос - как люди справляются с горизонтальным масштабированием вне веб-приложения с сервером единой БД с EF Code First Data Migrations?

Это "просто будьте осторожны с ваши изменения "?

1 Ответ

0 голосов
/ 27 апреля 2020

как люди справляются с горизонтальным масштабированием вне веб-приложения с сервером единой БД с кодом EF Первые миграции данных?

Подходит миграция во время выполнения подходит только для разработки и простых рабочих развертываний.

Наиболее распространенный шаблон здесь - это создание сценариев изменения базы данных (возможно, с использованием миграции, возможно, с использованием инструмента, ориентированного на базу данных, например SQL Инструменты данных сервера ), просмотрите изменения на предмет обратной совместимости и возможности их применения в сети и сначала разверните их.

...