Как развернуть SQL и присоединить БД: с ClickOnce? - PullRequest
0 голосов
/ 02 июня 2009

Мне нужно развернуть приложение winform, которое использует несколько БД. Мне нужно развернуть их с моим приложением, поскольку они взаимодействуют локально.

Могу ли я использовать ClickOnce или я должен рассмотреть другой подход? Я нашел пару примеров для ClickOnce, но все они предполагали, что БД включена в Решение, а здесь это не так.

Это приложение раньше было веб-приложением, и БД и DAL отражают это. Я также использую репликацию слиянием с этими локальными базами данных на центральную.

Является ли мой лучший подход для создания сценариев создания БД и запуска их во время установки, а затем запуска репликации слиянием для заполнения таблиц? БД также содержат более 100 спроков, которые не всегда хорошо играют с Merge Repl, поэтому мне нужно иметь возможность включать их в первоначальную установку.

В противном случае, я подумал, что мог бы выяснить, как подключить БД во время установки, что будет включать в себя sprocs, но я тоже не знаю, как это сделать.

Я открыт для ВСЕХ предложений по развертыванию этого приложения с его 4 отдельными базами данных SQL.

Спасибо!

1 Ответ

2 голосов
/ 02 июня 2009

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


В коде psuedo это будет что-то вроде:

 Check the database version in Revision Table
     If less than current version
        Load SQL file list from path
            Foreach file with revision > current Revision
               Execute TSQL Scripts

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

...