Как развернуть мое приложение, если для этого требуется база данных с созданными таблицами? - PullRequest
2 голосов
/ 25 апреля 2011

Ранее я использовал базу данных в SQL Server CE . Это довольно просто, потому что я могу иметь базу данных в простом .sdf файле и развернуть ее с моим приложением (пустым или с уже добавленными данными).

Но что, если я хочу изменить базу данных на SQL Server Express один?

Конечно, если у моего клиента уже есть база данных, которая мне нужна, мне не нужно ничего менять (ну, может быть, строка подключения ).

Что мне делать, если я хочу доставить приложение клиенту, для которого требуется создать локальную базу данных SQL Server Express? Есть ли способ сделать это с файлами .mdf?

Конечно, у меня есть SQL код для создания всех таблиц с соответствующими внешними ключами и т. Д., Если это необходимо.

Полагаю, с этим сталкиваются многие разработчики, но я не знаю, как это сделать.

Пожалуйста, не предлагайте использовать SQLite, MySQL или другую базу данных. Я задаю этот вопрос, потому что хочу знать, как это сделать, в частности, на SQL Server.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Есть несколько вещей, о которых стоит подумать:

  1. Возможно, вам придется распространять сам SQL Express
  2. Развернуть базу данных до новой настройки
  3. Миграция существующей базы данных в новую схему / версию

    Добавить 1. Длинный, но очень описательный документ об этой процедуре Официальные документы

    Добавить 2. На MSDN

    Добавить 3. Для решения этой проблемы я использовал только два способа: 1: развернуть новую версию и перенести данные с помощью сценария, и 2: создать сценарий, преобразующий текущую версию в новую версию.

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

2 голосов
/ 25 апреля 2011

Вы можете подключиться к 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 с вашимсценарий в качестве входных данных для шага развертывания

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