Как программно развернуть базу данных из приложения Asp.Net, используя существующую базу данных / схему в качестве шаблона? - PullRequest
2 голосов
/ 25 октября 2011

Вопрос:

Я создаю приложение Asp.Net, которое имеет многопользовательскую архитектуру данных с отдельными базами данных для каждого арендатора.Мне нужно иметь возможность создавать и развертывать базы данных программно из приложения, когда новый клиент регистрируется.Каков наилучший способ поддерживать базу данных шаблонов / схему / скрипт и использовать ее для развертывания новой базы данных на сервере.

Примечание:

Я использую .Net 4.0 для приложения и SQL Server 2008 R2 для сервера.

Текущее решение:

В настоящее время на сервере поддерживается база данных шаблонов по умолчанию.Изменения в базе данных делаются с помощью Visual Studio, чтобы поддерживать управление версиями через систему контроля версий.Когда необходимо развернуть новую базу данных:

  1. Создайте новую базу данных на сервере, используя Database.Create .

  2. Затем используйте Transfer.TransferData , чтобы передать только схему в новую базу данных.Или используйте Transfer.ScriptTransfer и сохраните сценарий в памяти для последующих развертываний.

1 Ответ

2 голосов
/ 25 октября 2011

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

Альтернатива развертывания на основе инструментов сравнения дает вам возможность принять решение о том, как обрабатывать различия.(с большими таблицами это может стать очень опасным, если инструмент принял решение о модификации на основе копирования), а также предоставляет вам любую поддержку, которую инструмент diff предоставляет для автоматизации, что делает обработку ошибок / повторных попыток, как я долженПоместите это, ... «весело».

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