Рекомендации по обновлению базы данных приложения уровня приложения уровня VS 2012
В VS2012 я создаю проект базы данных, импортированный приложение уровня данных.dacpac, которое я создал из своего экземпляра SQL Server 2012.
У меня вопрос, если я занимаюсь разработкой, и все, что я хочу сделать, это изменить структуру таблицы SQL в VS2012, скажем, я добавляю новый столбец в таблицу, это единственный способ перенести это изменение в базу данных для построения проекта.dacpac, а затем обновить базу данных, в моем случае через SQL Server Management Studio. Если я работаю над базой данных для разработчиков, не для производства, и мне просто нужен скрипт обновления, я не вижу, как получить его в проекте БД для приложения уровня данных.
Я просто вручную вносил изменения в обоих местах, но в конце концов меня прервут и я забуду внести соответствующие изменения.
Как ты делаешь это?
Спасибо
1 ответ
Может быть, я здесь не за вами, но вы пытались сделать обновления, опубликовав проект базы данных? Если вы щелкните правой кнопкой мыши на проекте базы данных, вы увидите диалоговое окно "Опубликовать базу данных". Оттуда вы устанавливаете соединение с целевой базой данных и затем нажимаете кнопку "Опубликовать". Это должно применить ваши изменения, в данном случае добавленный столбец, к вашей целевой базе данных.
Вы также можете запустить его из командной строки. Это будет выглядеть примерно так
c:\MyCode\bin\Debug>"c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin"\sqlpackage.exe /Action:Publish /Sourcefile:MyCode.dacpac /Profile:local.publish.xml
И файл publish.xml может выглядеть примерно так
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName>TargetDatabaseName</TargetDatabaseName>
<DeployScriptFileName>TheDeployScriptName.sql</DeployScriptFileName>
<TargetConnectionString>Data Source=localhost\SQLEXPRESS;Integrated Security=True;Pooling=False</TargetConnectionString>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
</Project>