Вопрос по version-control, database – Перенос изменений из БД разработчика в производственную БД

2

Скажем, у меня есть веб-сайт и база данных этого веб-сайта, размещенного локально на моем компьютере (для разработки), и другая база данных, размещенная (для производства) ... то есть сначала я делаю изменения в базе данных dev, а затем я делаю изменения в prod DB.

What is the best way to transfer the changes that I did on the local database to the hosted database?

If it matters, I am using MS Sql Server (2008)

Ваш Ответ

5   ответов
3

обавитьDatabase Project для решения веб-приложения. Проект базы данных должен иметь файлы SQL, которые могут полностью воссоздать всю базу данных на новом сервере вместе со всеми необходимыми таблицами, процедурами пользователей и ролями.

Таким образом, они также включены в исходный код для всего остального кода.

Eсть Изменения подпапка в проекте базы данных, куда я помещаю файлы SQL, которые применяют любые новые изменения или дополнения к базе данных для последующих версий.

SQL в файлах должен быть записан с надлежащими блоками «если существует», чтобы его можно было безопасно выполнить несколько раз на уже обновленной базе данных без ошибок.

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

1

написав «миграции», которые фиксируют изменения, которые вы вносите в структуру БД в каждой точке. Они запускаются с помощью инструмента миграции (задача для граблей), который также записывает данные в таблицу БД, поэтому он знает, была ли выполнена конкретная миграция или нет.

Вы могли бы создать такую структуру для своей платформы разработки (.Net?), Но я думаю, что в других ответах на этот вопрос люди предложат доступные инструменты для управления версиями базы данных на вашей платформе разработки или, возможно, для вашей конкретной БД.

Я не знаю ничего из этого, но проверить этот список. Я вижу много платных вещей, но должно быть что-то бесплатное. ТакжеПроверь эт.

1

написанные разработчиками, когда они проверили / подтвердили свои изменения. (Исключением является перемещение больших данных.) Все сценарии хранятся в системе управления версиями. и могут быть проверены администраторами баз данных.

Это ручной, иногда трудоемкий, но эффективный, безопасный и контролируемый процесс.

Базы данных слишком важны для копирования из dev.

Существуют инструменты, которые помогут создать / проверить эти сценарии. Видетьhttp: //www.red-gate.com Я использовал их инструменты для сравнения 2 баз данных для создания сценариев. Брайа

1

я иногда делаю их вручную. Для больших изменений я использую Красные ВоротаQL сравнения @ для создания сценариев изменений. Они проверяются вручную и сначала запускаются в среде QA, чтобы убедиться, что они ничего не сломали. Для больших изменений мы запускаем специальную резервную копию перед внесением изменений как в QA, так и в производстве.

0

екта с выделенной командой администраторов баз данных. Но если у вас нет выделенных разработчиков, которые пишут код только для БД, то это Approach дорогое время и ресурс.

Подход к использованию RedGate DB сравнивать тоже не годится. У тебя все еще есть много ручной работы, которую можно пропустить по ошибке..

Нужно что-то лучше. Это было причиной, почему мы построили "Agile DB Recreation / Import / Reverse / Export tool" Инструмент бесплатный.

Преимущества: ваши разработчики используют любые предпочтительные инструменты для разработки DEV DB. Затем они запускают БД RIRE, и она создает регенерирующую БД (таблицы, представления, StorPro и т. Д.) И экспортирует данные в файлы XML. XML-файлы, которые вы можете хранить в любой системе хранилища кода.

И второй шаг - еще раз запустить DB RIRE, чтобы сгенерировать разностные сценарии между структурой и данными в файлах XML и в производственной БД.

Конечно, вы можете делать столько итераций, сколько вам нужно.

Похожие вопросы