Управление изменениями базы данных при обновлении программного обеспечения / обновлении / обновлении - PullRequest
0 голосов
/ 12 февраля 2009

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

Положение:

  • Я развертываю релиз приложения wpf на пользователь. Приложение использует файл данных MSSQL для хранение данных приложения (Развертывание с использованием Client Profile и предварительных условий SqlServer Compact 3.5)
  • В дальнейших изменениях схемы базы данных разработки я добавлю несколько дополнительных данные тоже
  • Я пытаюсь запустить патч / минор / майор апгрейд с Visual Studio 2008 издательство и MSI

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

На данный момент я получил 2 варианта:

  • Создать скрипт обновления sql для каждого отпустите и попробуйте обновить базу данных на 1-й запуск программы после исправления.
  • Создайте проект установки базы данных и попробуйте оттуда написать скрипт (не знаю, как это сделать).

Я был бы рад услышать, что некоторые из вас используют или будут использовать такой случай. Некоторые ссылки на примеры / подробное объяснение того, как будет здорово. Я не очень хорош в этом развертывании / базы данных ... пока ...:)

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 13 февраля 2009

В моем текущем проекте мы используем метод непрерывной интеграции баз данных.

Мы собираем все сценарии SQL-изменений (которые могут создавать / изменять таблицы, хранимые процедуры, а также переносить данные и т. Д.) В проект ac # и развертывать их одновременно с остальной частью программного обеспечения.

Используя эту технику, мы можем гарантировать, что все базы данных разработчика также обновлены, поскольку они интегрированы в систему сборки Visual Studio.

Мы запускаем этот скрипт MSBuild для локальных сборок и для развертывания. Он проверяет номер версии в базе данных и запускает любые сценарии с большим номером.

Я не очень люблю MSBuild, но он выполняет свою работу.

У Мартина Фаулера есть статья о эволюционном проектировании базы данных , в которой есть кое-что об этом.

Если вы используете среду управления SQL Server для внесения изменений, вы можете использовать «Создать сценарий изменений», чтобы позволить ему записывать изменения для вас.

1 голос
/ 12 февраля 2009

Эта статья о " миграции баз данных в стиле Rails в .Net " может быть полезной. С момента появления Rails было проделано много работы по передовым методам миграции баз данных, которые можно использовать на других языках и платформах.

0 голосов
/ 15 августа 2010

Если вы добавите класс Installer в вашу DLL или EXE, его метод установки будет вызываться во время установки (для получения подробной информации обратитесь к нашему MSDN, VS может сделать мини-проект для вас, а затем вы можете просто скопировать скелет и атрибуты). Затем вы можете запускать команды SQL для CE и создавать резервные копии существующих файлов CE и даже делать откат, если что-то пойдет не так (в классе установщика есть методы, позволяющие выполнить полные транснациональные шаги на уровне всей установки - вещь разума: -)

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