Создать «Обновление сценариев» для проекта базы данных? - PullRequest
3 голосов
/ 21 января 2011

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

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

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

1 Ответ

1 голос
/ 06 октября 2011

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

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

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

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

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