Первое, что вам понадобится, - это таблица или другой механизм для хранения информации о версии схемы. Если ничего другого, чтобы вы могли связать ваше приложение и схему вместе. Нет ничего более болезненного, чем версия приложения с неверной схемой - сбой, повреждение данных и т. Д.
Приложение должно быть отклонено или закрыто, если его версия не верная & mdash; вы можете получить некоторую отдачу, если она не подходит, но защитит вас от действительно плохого дня, когда база данных испортит ценные данные.
Вам понадобится способ отслеживать изменения, такие как Subversion или что-то еще - из SQL вы можете экспортировать исходную схему. Отсюда вам понадобится механизм для отслеживания изменений с использованием удобного инструмента, такого как сравнение SQL, а затем отслеживание изменений схемы и сопоставление с обновлением номера версии в целевой базе данных.
Мы храним каждую дельту в отдельной папке под утилитой обновления, которую мы создали. Эта утилита выполняет вход на сервер, считывает информацию о версии и затем применяет сценарии преобразования из следующей версии в базе данных, пока не найдет больше сценариев обновления в своей подпапке. Это дает нам возможность обновлять базу данных независимо от ее возраста до текущей версии. Если есть данные, преобразовывающие данные уникального арендатора, они станут хитрыми.
Конечно, вы всегда должны делать резервную копию базы данных, которая записывает во внешний файл, предпочтительно с идентифицируемым человеком номером версии, чтобы вы могли найти и восстановить его, когда скрипты (скрипты) выходят из строя. И в конечном итоге он просто планирует выяснить, как восстанавливать и восстанавливать.
Я видел какой-то инструмент обновления схемы в новой VS 2010, но я не использовал его. Это также может быть полезно для вас.