Создать сценарии обновления для проекта базы данных?

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

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

Кроме того, как можно было бы интегрировать это в проект установки вместо ручного процесса?


person Dave    schedule 21.01.2011    source источник


Ответы (1)


Даже если вы использовали новую Entity Framework, вы все еще не можете заставить Visual Studio и т. д. автоматически отслеживать изменения в схеме базы данных для вас, вам придется отслеживать изменения между версиями вручную и применять их (обычно при запуске обновленного приложения). в первый раз).

Я бы предложил...

  1. Добавление идентификатора версии в схему вашей базы данных в какой-либо таблице.
  2. Отслеживание всех изменений схемы базы данных между версиями, например, если вы используете MySQL, тогда Toad сделайте репозиторий (например, SVN) фиксацией каждый раз, когда вы вносите изменения в схему, что упрощает регистрацию изменений.
  3. При развертывании новой версии подсчитайте все изменения схемы и отметьте их как набор изменений с версии Y на версию Z.
  4. Когда ваше приложение запускается в первый раз (то есть не с программой установки, а с самим приложением), найдите версию в схеме и применяйте каждый сценарий обновления, пока не достигнете версии приложения. Таким образом, если приложение запустится и обнаружит схему X, оно запустит сценарий Y, а затем сценарий Z.

Так работает большинство приложений, например, wordpress, blogengine.net; все работают в этом режиме, при выпуске они предоставляют один скрипт для создания схемы с нуля, а другой - для ее обновления из последней выпущенной версии.

person simbolo    schedule 06.10.2011