Как использовать Source Control с Sql Server Management Studio?Как использовать Source Control с Sql Server Management Studio?
ответ
Вам необходимо использовать Team Foundation Server MSSCCI Provider, что позволяет интегрировать использование Team Foundation Version Control с продуктами, которые не поддерживают интеграцию Team Explorer.
Это зависит от того, какую версию SSMS вы используете.
Если вы используете версию, которая использует оболочку Visual Studio, то она уже интегрирована в SSMS, и все, что вам нужно сделать, это включить ее. This Сообщение в блоге от Sql Server Team Объясняет, как это сделать.
Если вы используете предыдущую версию, вам необходимо загрузить и установить поставщика. This дает полную информацию.
Включение интеграции системы управления версиями в SSMS Чтобы включить интеграцию TFS в SSMS, выполните следующие действия:
1) Закрыть SSMS, если он работает.
2) Установите Visual Studio 2015 на свою машину SSMS. Если у вас еще нет Visual Studio, Community Edition будет работать нормально. Это большая загрузка, но вы можете сэкономить некоторое пространство, отменив выбор всех языков во время установки Visual Studio, если ваша единственная цель - включить Source Control в SSMS.
3) Отредактируйте файл ssms.pkgundef в C: \ Program Files (x86) \ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ ssms.pkgundef.
В начале этого файла имеется ряд пакетов, сгруппированных вместе, связанных с функциями управления потоком TFS. Эти пакеты должны быть удалены из файла pkgundef. Это можно сделать, удалив раздел или закомментировав каждую строку, используя «//». Вот пример того, как должен выглядеть раздел, если он закомментирован: // Записи конфигурации TFS SCC. Записи TFS блокируют загрузку Team Explorer.
// Microsoft.VisualStudio.TeamFoundation.Lab
//[$RootKey$\Packages\{17c5d08a-602c-4dfb-82b5-8e0f7f50c9d7}]
// GitHub Package
//[$RootKey$\Packages\{c3d3dc68-c977-411f-b3e8-03b0dccf7dfc}]
// Team Foundation Server Provider Package
//[$RootKey$\Packages\{5BF14E63-E267-4787-B20B-B814FD043B38}]
// Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.WitPcwPackage
//[$RootKey$\Packages\{6238f138-0c0c-49ec-b24b-215ee59d84f0}]
// Microsoft.VisualStudio.TeamFoundation.Build.BuildPackage
//[$RootKey$\Packages\{739f34b3-9ba6-4356-9178-ac3ea81bdf47}]
// Microsoft.VisualStudio.TeamFoundation.WorkItemTracking
//[$RootKey$\Packages\{ca39e596-31ed-4b34-aa36-5f0240457a7e}]
// Microsoft.VisualStudio.TeamFoundation
//[$RootKey$\Packages\{b80b010d-188c-4b19-b483-6c20d52071ae}]
// Microsoft.TeamFoundation.Git.Provider.SccProviderPackage
//[$RootKey$\Packages\{7fe30a77-37f9-4cf2-83dd-96b207028e1b}]
// Microsoft.VisualStudio.TeamFoundation.VersionControl.SccPcwPluginPackage
//[$RootKey$\Packages\{1b4f495a-280a-3ba4-8db0-9c9b735e98ce}]
// Microsoft.VisualStudio.TeamFoundation.VersionControl.HatPackage
//[$RootKey$\Packages\{4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}]
// Visual SourceSafe Provider Package
//[$RootKey$\Packages\{AA8EB8CD-7A51-11D0-92C3-00A0C9138C45}]
// Visual SourceSafe Provider Stub Package
[$RootKey$\Packages\{53544C4D-B03D-4209-A7D0-D9DD13A4019B}]
// Microsoft.VisualStudio.TeamFoundation.Initialization.InitializationPackage
[$RootKey$\Packages\{75DF55D4-EC28-47FC-88AC-BE56203C9012}]
// Team Foundation Server Provider Stub Package
[$RootKey$\Packages\{D79B7E0A-F994-4D4D-8FAE-CAE147279E21}]
// Microsoft.VisualStudio.Services.SccDisplayInformationPackage
[$RootKey$\Packages\{D7BB9305-5804-4F92-9CFE-119F4CB0563B}]
// Microsoft.VisualStudio.TeamFoundation.Lab.LabPcwPluginPackage
[$RootKey$\Packages\{e0910062-da1f-411c-b152-a3fc6392ee1f}]
[$RootKey$\ToolsOptionsPages\Source Control]
[$RootKey$\AutoLoadPackages\{11b8e6d7-c08b-4385-b321-321078cdd1f8}]
// TFS SCC Configuration entries.
После завершения запуска SSMS и меню «Команда» должны быть видны в строке меню SSMS. Это меню и связанные с ним функции - это стандартная функциональность Visual Studio. Это позволяет подключаться к серверам TFS или серверам Git.
Управление версиями базы данных SQL непосредственно из SSMS может быть выполнено с использованием различных сторонних надстроек. Например, ApexSQL Source Control имеет бесшовную интеграцию SSMS и может использоваться не только с TFS, но следующие системы SC поддерживаются из коробки: Git, Subversion, Mercurial, Perforce. Поддержка Team Foundation Server включает онлайн-версию Visual Studio Team Services.
Как поясняется в this article, надстройка управления версиями ApexSQL представляет собой, помимо прочего, IDE, называемую вкладкой центра действий, позволяет вам поддерживать репозиторий управления версиями, не обязательно сначала создавать сценарии из объектов базы данных. Обычно вкладка центра действий автоматически открывается, как только вы завершаете связывание базы данных в репозиторий управления версиями, но вы все же можете вручную открыть ее с помощью клавиш комбинации клавиш Ctrl + Alt + A или щелкнув правой кнопкой мыши ссылку на базу данных, привязанную к источнику данных, и выполнить навигацию в пункт «Центр действий».
Мое решение - только история версий. У меня есть запланированный сценарий powershell, который генерирует определения указанных объектов (хранимые процедуры, функции, таблицы и представления). Затем он использует git для обновления репозитория GitLab. Git будет обновляться только в том случае, если есть изменения в содержимом файла, поэтому каждый раз можно генерировать все сценарии.
function SQL-Script-Database
{
<#
.SYNOPSIS
Script all database objects for the given database.
.DESCRIPTION
This function scripts all database objects (i.e.: tables, views, stored
procedures, and user defined functions) for the specified database on the
the given server. It creates a subdirectory per object type under
the path specified.
.PARAMETER savePath
The root path where to save object definitions.
.PARAMETER database
The database to script (default = $global:DatabaseName)
.PARAMETER DatabaseServer
The database server to be used (default: $global:DatabaseServer).
#>
param (
[parameter(Mandatory = $true)][string] $savePath,
[parameter(Mandatory = $false)][string] $database = $global:DatabaseName,
[parameter(Mandatory = $false)][string] $DatabaseServer = $global:DatabaseServer
)
try
{
if (!$DatabaseServer)
{ throw "`$DatabaseServer or `$InstanceName variable is not properly initialized" }
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
$s = New-Object Microsoft.SqlServer.Management.Smo.Server($DatabaseServer)
$db = $s.databases[$database]
$objects = $db.Tables
$objects += $db.Views
$objects += $db.StoredProcedures
$objects += $db.UserDefinedFunctions
$scripter = New-Object ('Microsoft.SqlServer.Management.Smo.Scripter') ($s)
$scripter.Options.AnsiFile = $true
$scripter.Options.IncludeHeaders = $false
$scripter.Options.ScriptOwner = $false
$scripter.Options.AppendToFile = $false
$scripter.Options.AllowSystemobjects = $false
$scripter.Options.ScriptDrops = $false
$scripter.Options.WithDependencies = $false
$scripter.Options.SchemaQualify = $false
$scripter.Options.SchemaQualifyForeignKeysReferences = $false
$scripter.Options.ScriptBatchTerminator = $false
$scripter.Options.Indexes = $true
$scripter.Options.ClusteredIndexes = $true
$scripter.Options.NonClusteredIndexes = $true
$scripter.Options.NoCollation = $true
$scripter.Options.DriAll = $true
$scripter.Options.DriIncludeSystemNames = $false
$scripter.Options.ToFileOnly = $true
$scripter.Options.Permissions = $true
foreach ($o in $objects | where {!($_.IsSystemObject)})
{
$typeFolder=$o.GetType().Name
if (!(Test-Path -Path "$savepath\$typeFolder"))
{ New-Item -Type Directory -name "$typeFolder"-path "$savePath" | Out-Null }
$file = $o -replace "\[|\]"
$file = $file.Replace("dbo.", "")
$scripter.Options.FileName = "$savePath\$typeFolder\$file.sql"
$scripter.Script($o)
}
}
catch
{
Write-Error "`t`t$($MyInvocation.InvocationName): $_"
}
}
# repeat line for each database/server to be pushed to version control
SQL-Script-Database C:\Users\UserName\DbObjDef\FolderName DatabaseName ServerName
cd C:\Users\UserName\DbObjDef
git add .
git commit -m "nightly diff"
git push -u origin master
- 1. SQL Management Server Studio 2005 и Source Control
- 2. sql server 2005 source control
- 3. SQL Server Management Studio, начинающий
- 4. Откажитесь от изменений с помощью Source Source Server Source Control
- 5. SQL Server Management Studio ZEROFILL
- 6. SQL server management studio Express
- 7. SQL Server Management Studio 2016
- 8. Настройка SQL Server Management Studio
- 9. Sql Server Management Studio Express
- 10. SQL Server Management Studio Forms?
- 11. SQL Server 2014 Management Studio
- 12. 2005 SQL Server Management Studio
- 13. Замена SQL Server Management Studio
- 14. sql server management studio 2008
- 15. SQL Server Management Studio с SQL Server 2000
- 16. Как работает SQL Source Control для SQL Server?
- 17. Team Foundation Server, SQL Server Management Studio
- 18. SQL Server Express 2008 с Management Studio
- 19. Синхронизация данных с SQL Server Management Studio
- 20. Как изменить результаты SQL Server Management Studio
- 21. Как удалить SQL Server Management Studio 2016?
- 22. Проблема с удалением SQL Server Management Studio
- 23. SQL Server Management Studio как оснастка MMC
- 24. Sql отступ в SQL Server Management Studio
- 25. Управление версиями SQL Server Management Studio
- 26. Sql Server Management Studio и Multi-monitor
- 27. SQL Server Management Studio Express и MySQL?
- 28. SQL Server Management Studio VS Visual Studio - Разная версия SQL
- 29. Как запустить sql-скрипт с помощью SQL Server Management Studio?
- 30. Конкатенация в SQL Server Management Studio 2014
Какая версия SSMS и какая версия TFS? Также, что вы подразумеваете под «это будет самонадеянно». Если это так, зачем задавать вопрос на SO? –
Потому что не было ответа на этот вопрос. –