Ответ 1
Мастер создания скриптов выполнил именно то, что мне нужно.
Обычно во время разработки проекта я часто развертываюсь, просто чтобы убедиться, что у меня не будет проблем с производством.
Кроме того, во время разработки я обнаружил, что меняю схему базы данных.
Как я могу легко обновить базу данных в процессе производства?
Я отбрасываю старую базу данных и снова подключаю новую. Есть ли более быстрый способ обновления базы данных развертывания?
Спасибо
Каковы некоторые бесплатные инструменты для этого?
Мастер создания скриптов выполнил именно то, что мне нужно.
Ведите список всех сценариев изменений, которые вы применяете к своей базе данных dev, и применяйте их к базе данных Production при развертывании.
В качестве альтернативы используйте сторонний инструмент, который может сравнивать две схемы и предоставить сценарий изменений, который вы затем можете запустить.
Я пытаюсь использовать такие инструменты, как RedGate SQL Compare, который покажет вам "diff" между двумя версиями и фактически script из компонентов, которые разные. Вы также можете привыкнуть к script всем вашим изменениям базы данных, чтобы у вас был проверочный след изменений, которые вы сделали, и можете применять их программным способом, когда вы готовы к развертыванию.
Лучше всего реализовать свои изменения как набор скриптов diff. Поэтому вместо того, чтобы отбрасывать таблицу и воссоздавать ее, вы script равны ALTER TABLE.
Есть также инструменты, которые помогут вам в этом. Если вы сохраните копию оригинала и новой базы данных, вы можете запустить инструмент против двух, которые будут генерировать SQL, который приведет вас от одной версии к другой.
Мне лично нравится обновлять полные сценарии создания, а также поддерживать обновление script, всякий раз, когда я меняю схему для конкретной версии. Я использовал Red Gate SQL Compare, и это очень хороший инструмент, но предпочитаем поддерживать сценарии.
Всегда записывайте script, чтобы внести изменения в схему. Поместите script в папку рассылки, чтобы при изменении ваших изменений скрипты выполнялись для изменения каждой среды.
Migrator Dot Net - отличный инструмент для управления версиями вашей базы данных. Трудно вернуться к ручному отслеживанию сценариев и выполнению сравнения баз данных после того, как вы использовали миграции.
Visual Studio Database Edition неплохо работает в этом. Он хранит всю вашу схему в исходных сценариях под контролем источника вместе с остальной частью вашего кода. Он может анализировать вашу схему для зависимостей при внесении изменений. Он может проводить анализ лучших практик. И он может генерировать файл .dbschema, который может использоваться средством развертывания для обновления вашей базы данных до текущей схемы.
Фактически вы можете автоматизировать это с непрерывной интеграцией и строить капли прямо для тестовой среды, промежуточной среды и даже производственной среды. Это означает, что когда вы входите в тестовую ветку, строительная машина будет создавать продукт, запускать тесты проверки сборки и разворачивать его на вашем сервере разработки. Когда вы меняете интеграцию из ветки теста в основную ветвь, строительная машина создает продукт, запускает BVT, а развертывания - на вашем тестовом/приемном сервере. И когда вы интегрируетесь в ветвь выпуска, сборщик будет строить, тестировать и, наконец, развертывать на производстве. Теперь верно, что не многие организации готовы пойти так далеко и позволить автоматическому процессу создания непрерывного развертывания автоматически запускаться на живых серверных серверах, и я считаю, что это радикальное мышление. Но я говорю, что вам следует больше доверять автоматическим BVT и автоматическим процессам, чем любые ручные тесты и развертывание.
Попробуйте DBSourceTools.
http://dbsourcetools.codeplex.com
Его открытый источник и script полная база данных
- таблицы, представления, procs и данные на диск, а затем разрешить вам воссоздать эту базу данных с помощью цели развертывания.
Он специально разработан, чтобы помочь разработчикам получить свои базы данных под контролем исходного кода.