2010-01-12 5 views
3

У меня есть приложение на основе db, и я удаляю содержимое схемы & db каждый раз, когда в схеме происходят какие-либо изменения. Теперь он находится в режиме разработки. Вскоре мы выпускаем приложение на производстве. Но мы подозреваем, что после выпуска приложения в производственном использовании может быть много изменений. Программное обеспечение должно быть установлено во многих местах по всему миру. (Не веб-приложение)Как работают инструменты миграции схемы?

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

+0

Как написано ваше приложение? Если он использует ORM, просмотрели ли вы инструменты миграции ORM? – Tobu

+0

мы используем linq с Visual Studio или C# – 2010-01-13 04:42:33

ответ

4

Скачайте инструменты RedGate и найдите. Я считаю, что все они имеют пробные периоды, и я уверен, что SQL Compare делает.

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

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

Вы также можете использовать SQL Data Compare, чтобы синхронизировать таблицы поиска. Просто используйте его для таблиц поиска, а не фактические основные таблицы данных.

Независимо от того, к какому маршруту вы идете, вам нужно будет сделать какое-то пользовательское кодирование, потому что вам нужно преобразовать данные, изменяя структуру или по той же причине.

+1

Если вы собираетесь голосовать, это может помочь объяснить причину, по которой люди могут принять разумное, обоснованное решение. Как бы то ни было, людям нечего сообщать, есть ли какие-то неотъемлемые проблемы с этим ответом, которые только вы знаете. –

0

Рассмотрите RoundhousE как средство миграции sql.

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

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

Смежные вопросы