in CosmosClone/CosmosCloneCommon/Migrator/DocumentMigrator.cs [119:163]
public async Task InitializeMigration()
{
logger.LogInfo("Begin Document Migration.");
logger.LogInfo($"Source Database: {CloneSettings.SourceSettings.DatabaseName} Source Collection: {CloneSettings.SourceSettings.CollectionName}");
logger.LogInfo($"Target Database: {CloneSettings.TargetSettings.DatabaseName} Target Collection: {CloneSettings.TargetSettings.CollectionName}");
IsInitialized = true;
sourceClient = cosmosHelper.GetSourceDocumentDbClient();
sourceCollection = await cosmosHelper.GetSourceDocumentCollection(sourceClient);
targetClient = cosmosHelper.GetTargetDocumentDbClient();
var indexPolicy = (CloneSettings.CopyIndexingPolicy)? sourceCollection.IndexingPolicy : new IndexingPolicy();
targetCollection = await cosmosHelper.CreateTargetDocumentCollection(targetClient, indexPolicy, sourceCollection.PartitionKey);
if (CloneSettings.CopyDocuments)
{
TotalRecordsInSource = cosmosHelper.GetSourceRecordCount();
logger.LogInfo($"Total records in Source: {TotalRecordsInSource} ");
SourceCommonDataFetchQuery = cosmosHelper.GetSourceEntityDocumentQuery<dynamic>(sourceClient, CloneSettings.ReadBatchSize);
await cosmosBulkImporter.InitializeBulkExecutor(targetClient, targetCollection);
}
else
{
logger.LogInfo("Document Migration is disabled through configuration. ");
}
if (CloneSettings.ScrubbingRequired && scrubRules != null && scrubRules.Count > 0)
{
noFilterScrubRules = new List<ScrubRule>();
filteredScrubRules = new List<ScrubRule>();
foreach (var sRule in scrubRules)
{
if(string.IsNullOrEmpty(sRule.FilterCondition))
{
sRule.RecordsByFilter = TotalRecordsInSource;
noFilterScrubRules.Add(sRule);
}
else
{
filteredScrubRules.Add(sRule);
//DataScrubMigrator.scrubRules.Add(sRule);
}
}
}
}