Развертывание последних изменений в производственной БД - без потери данных - PullRequest
1 голос
/ 12 января 2012

Я проводил некоторые исследования правильной процедуры, которой необходимо следовать при работе как с базой данных разработки, так и с живой продукцией. Лучшей статьей, которую я нашел, была эта: Стратегии разработки и развертывания баз данных , но я не могу согласиться с мыслью, что мне нужно поддерживать документ Word вручную при каждом изменении, которое я вносю в БД. Это кажется мне смешным ...

Я использую SQL Server Management Studio для управления базами данных SQL как в dev, так и в prod. Есть ли способ внедрить последние изменения в производство БЕЗ уничтожения таблиц и данных. Может кто-нибудь указать мне хорошую процессуальную статью о том, как это делается в SSMS.

Спасибо

Ответы [ 3 ]

3 голосов
/ 12 января 2012

Безответственно вносить изменения в дизайн базы данных без создания сценариев изменений, которые вводятся в систему контроля версий.

Однако, если вы уже находитесь в этой ситуации, я предлагаю купить SQLCompare от red_gate.Он посмотрит на две базы данных и расскажет о различиях.Вы все еще не можете запустить это по воле случая - иногда вы вносили изменения в базу данных dev, которая еще не является частью текущей версии, которая передается в prod, и SQLCompare не может этого знать.Гораздо лучше создавать сценарии по ходу дела (используя alter table, когда таблица существует в настоящее время, чтобы не нарушать существующие данные) и сохранять их в контроле исходного кода вместе с остальным кодом, который вы будете выдвигать одновременно.

1 голос
/ 12 января 2012

Обычной стратегией является сохранение упорядоченного набора сценариев изменений, например, с префиксом даты или версии базы данных, которые можно легко проверить в базе данных разработки, начиная с новой резервной копии с производства.Сценарии изменений часто можно генерировать из SQL Server Management Studio при внесении изменений или создавать вручную в случае более сложных изменений.

Другим предложением может быть управление версиями определений базы данных (таблиц, процедур и т. Д.),Этого легко добиться, используя SQL Server Management Studio для создания сценариев создания для всех объектов после каждого обновления.Таким образом, вы можете легко сравнивать изменения, сделанные во времени или в разных средах.

1 голос
/ 12 января 2012

Единственно верный способ сделать это в продвижении - с или без Management Studio - подготовить, проверить, протестировать и запустить сценарии вручную.

со свежей резервной копией!

...