Я действительно борюсь с лучшим подходом к управлению базой данных SQL Azure, которая основана на проекте Visual Studio 2010 Database Project. Я полагал, что было бы достаточно просто использовать VSDBCMD для создания скриптов diff для обновлений, а затем просто запустить с SQL Azure в SSMS. Тем не менее, я получаю страшное "Не удалось определить поставщика схемы базы данных. Развертывание не может продолжаться". ошибка.
В этот момент я просто предполагаю, что SQL Azure не поддерживает что-то в VSDBCMD или наоборот, и я смотрю на другие подходы. Здесь подход, который я сейчас рассматриваю:
- Script база данных SQL Azure из SSMS с использованием параметров ядра базы данных Azure.
- Создайте локальную базу данных tempory из script на шаге 1.
- Используйте VSDBCMD для создания моей дельта script для локальной базы данных с шага 2.
- Просмотрите/измените script с шага 3.
- Запустите script с шага 3/4 с SQL Azure в SSMS.
Хорошо, плохо? Любые другие идеи?
EDIT: я обновился до Visual Studio 2010 с пакетом обновления 1 (SP1) и обнаружил, что в Microsoft.Data.Schema.Sql.dll: SqlAzureDatabaseSchemaProvider появился новый поставщик схемы базы данных. Однако я не могу определить, как на самом деле использовать этого плохого мальчика. Теперь, когда я пытаюсь использовать VSDBCMD script для базы данных Azure, я получаю:
Поставщик схемы исходной базы данных Sql100DatabaseSchemaProvider не может быть переведен провайдеру SqlAzureDatabaseSchemaProvider. Развертывание не может продолжаться.
Я также попытался использовать поставщика Sql90 с тем же результатом. Я даже вручную отредактировал файл dbproj и изменил свойство DSP на SqlAzureDatabaseSchemaProvider. Когда я перезагружаю проект, я получаю:
Поставщик схемы базы данных должен предоставить реализацию DataGenerationServices.
Кто-нибудь пробовал это с VS 2010 SP1?