VSDBCMD для двух баз данных Diff?
Поиск в Google/Bing по запросу "vsdbcmd two database diff" не показывает мне ничего ясного. У меня просто есть две базы данных на одном и том же сервере, и я хочу их различить, а затем применить отличия схем от A->B. Так же, как я мог бы сделать в графическом интерфейсе VS2010.
Кто-нибудь может указать мне правильное направление для этого?
Благодарю.
1 ответ
Решение
Получил это методом проб и ошибок. Надеюсь, это поможет следующему человеку.
VSDBCMD /a:Import /cs:"Server=myserver;Integrated Security=true;Pooling=false;Initial Catalog=mydb" /dsp:Sql /model:sourcedb.dbschema
VSDBCMD /a:Import /cs:"Server=myserver;Integrated Security=true;Pooling=false;Initial Catalog=mydestdb" /dsp:Sql /model:mydestdb.dbschema
vsdbcmd /action:deploy /dd:- /dsp:Sql /modelfile:sourcedb.dbschema /targetmodelfile:mydestdb.dbschema /p:TargetDatabase="mydestdb" /Quiet:- /DeploymentScriptFile:diff.sql
Я получил неправильное сообщение об ошибке из-за невозможности определить схему на основе строки подключения. Оказывается, проблема в том, что отсутствует файл "DatabaseSchemaProviders.Extensions.xml", я пытался создать автономный дистрибутив VSDBCMD, но у меня не было этого файла.