in Source/NuGetGallery.Operations/Tasks/ExportDatabaseTask.cs [54:100]
public override void ExecuteCommand()
{
if (!String.IsNullOrEmpty(DatabaseName))
{
ConnectionString.InitialCatalog = DatabaseName;
}
Log.Info("Exporting {0} on {1} to {2}", ConnectionString.InitialCatalog, Util.GetDatabaseServerName(ConnectionString), DestinationStorage.Credentials.AccountName);
string serverName = ConnectionString.DataSource;
if (serverName.StartsWith("tcp:"))
{
serverName = serverName.Substring(4);
}
WASDImportExport.ImportExportHelper helper = new WASDImportExport.ImportExportHelper(Log)
{
EndPointUri = SqlDacEndpoint.AbsoluteUri,
DatabaseName = ConnectionString.InitialCatalog,
ServerName = serverName,
UserName = ConnectionString.UserID,
Password = ConnectionString.Password,
StorageKey = Convert.ToBase64String(DestinationStorage.Credentials.ExportKey())
};
// Prep the blob
string blobUrl = null;
if (!WhatIf)
{
var client = DestinationStorage.CreateCloudBlobClient();
var container = client.GetContainerReference(DestinationContainer);
container.CreateIfNotExists();
var blob = container.GetBlockBlobReference(ConnectionString.InitialCatalog + ".bacpac");
if (blob.Exists())
{
Log.Info("Skipping export of {0} because the blob already exists", blob.Name);
}
else
{
Log.Info("Starting export to {0}", blob.Uri.AbsoluteUri);
// Export!
blobUrl = helper.DoExport(blob.Uri.AbsoluteUri, WhatIf);
}
}
Log.Info("Export Complete");
}