Как развернуть мое приложение, если для этого требуется база данных с созданными таблицами?
Ранее я использовал базу данных в SQL Server CE. Это довольно просто, потому что я могу иметь базу данных в простом .sdf
файл и разверните его с моим приложением (либо пустым, либо с уже добавленными данными).
Но что, если я хочу изменить базу данных на SQL Server Express?
Конечно, если у моего клиента уже есть база данных, которая мне нужна, мне не нужно ничего менять (ну, может быть, строка подключения).
Что мне делать, если я хочу доставить приложение клиенту, которому требуется локальная база данных SQL Server Express? Есть ли способ сделать это с файлами.mdf?
Конечно, у меня есть код SQL для создания всех таблиц с соответствующими внешними ключами и т. Д., Если это необходимо.
Я полагаю, с этим сталкиваются многие разработчики, но я не знаю, как это сделать.
Пожалуйста, не предлагайте использовать SQLite, MySQL или другую базу данных. Я задаю этот вопрос, потому что я хочу знать, как сделать это, в частности, на SQL Server.
2 ответа
Вы можете подключиться к SQL Express с прикрепленным файлом БД:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
Также вы можете сделать резервную копию вашей базы данных и затем восстановить ее при развертывании.
ОБНОВЛЕНИЕ Но если вы не хотите копировать данные, только структуру, я предлагаю вам продолжить с SQL-скриптами. Вы можете проверить, существует ли БД, и создать ее, если ее нет. Вы даже можете инициировать некоторые таблицы с массовыми вставками.
if db_id('dbname') is null BEGIN CREATE DATABASE ... etc
В зависимости от типа вашего приложения вы можете указать свои сценарии для развертывания (AFAIK, VS2010 предлагает это для веб-приложений) или вызвать sql.exe с вашим сценарием в качестве входных данных в качестве шага развертывания.
Есть несколько вещей для размышления:
- Возможно, вам придется распространять сам SQL Express
- Разверните базу данных до новой настройки
Перенос существующей базы данных в новую схему / версию
Добавить 1. Длинный, но очень описательный документ об этой процедуре Официальные документы
Добавьте 2. На MSDN
Добавьте 3. Единственные два способа, которые я использовал для решения этой проблемы: 1: развернуть новую версию и перенести данные с помощью скрипта, и 2: создать скрипт, который преобразует текущую версию в новую версию.
По моему опыту, миграция существующей базы данных может оказаться самой сложной задачей в зависимости от изменений в схеме базы данных.