Дилемма создания производственной базы данных / миграции для ASP. NET Core MVC - PullRequest
0 голосов
/ 21 января 2020

Я создаю свое веб-приложение ASP. NET Core MVC с прошлого года, и в настоящее время в моем проекте насчитывается 100 файлов миграции, поскольку база данных развивалась вместе с функциями и возможностями. Моя база данных для разработки / тестирования, очевидно, синхронизируется с этой миграцией c.

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

Итак, у меня возникает вопрос / дилемма относительно создания этой производственной базы данных; 1. Я могу либо создать свою производственную базу данных, выполнив команду Add-Migration (для которой мне нужно удалить существующие файлы миграции из проекта), либо 2. Создать схему таблицы в SQL Management Server и сохранив __EFMigrationsHistory из тестовой базы данных

С [1] я не уверен, как я смогу управлять своей тестовой базой данных с этим же проектом в будущем. С [2] я не уверен, есть ли какой-либо недостаток.

Итак, каковы стандартные или лучшие практики для развертывания производства?

1 Ответ

1 голос
/ 21 января 2020
  1. Вы, безусловно, можете использовать Visual Studio для создания или обновления таблиц базы данных, но обычно это происходит только в вашей среде разработки.

Если вас беспокоит количество миграций, которые у вас есть, у вас все еще есть возможность начать заново, удалив их и удалив историю миграции (и вручную удалив таблицы и данные) и создав fre sh Миграция «Начальное создание». Если вы сделаете это, вы, вероятно, захотите сначала экспортировать какие-либо тестовые или конфигурационные данные или убедиться, что у вас есть способ восстановить их.

Для промежуточного и производственного развертывания лучше всего использовать SQL Server Management Studio для создания сценария для построения таблиц. Администратор базы данных - или вы, если это только вы - можете создать базу данных и запустить сценарий для генерации таблиц.

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

Вам необходимо убедиться, что базы данных dev и staging / production SQL настроены на соответствующий «уровень совместимости», а также решить, стоит ли вам нужно добавить любые начальные данные или данные конфигурации при создании.

В SQL Server Management Studio выберите соответствующую опцию, чтобы сгенерировать сценарий для необходимых таблиц.

https://docs.microsoft.com/en-us/sql/ssms/scripting/generate-scripts-sql-server-management-studio?view=sql-server-ver15

Вы также можете использовать этот процесс для экспорта и импорта данных - это идеально подходит для конфигурационных или тестовых данных.

https://dzone.com/articles/generate-database-scripts-with-data-in-sql-server

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