public void SetUpFixture() { var configurationManager = new ConfigurationManager(); var configurationService = new AzureBlobConfigurationService(configurationManager, _logService.Object); var environment = configurationService.Get <CommonWebConfiguration>().Environment; string databaseName = $"RaaTest-{environment}"; _connectionString = $"Server=SQLSERVERTESTING;Database={databaseName};Trusted_Connection=True;"; var databaseProjectPath = AppDomain.CurrentDomain.BaseDirectory + $"\\..\\..\\..\\{DatabaseProjectName}"; var dacPacRelativePath = $"\\bin\\{environment}\\{DatabaseProjectName}.dacpac"; var dacpacFilePath = Path.Combine(databaseProjectPath + dacPacRelativePath); if (!File.Exists(dacpacFilePath)) { //For NCrunch on Dave's machine databaseProjectPath = $"C:\\_Git\\Beta\\src\\{DatabaseProjectName}"; dacpacFilePath = Path.Combine(databaseProjectPath + dacPacRelativePath); } var dbInitialiser = new DatabaseInitialiser(dacpacFilePath, _connectionString, databaseName); dbInitialiser.Publish(true); var seedScripts = new string[] { }; var seedObjects = GetSeedObjects(); dbInitialiser.Seed(seedScripts); dbInitialiser.Seed(seedObjects); }
private DatabaseConfigurationProvider() { var configurationManager = new ConfigurationManager(); var configurationService = new AzureBlobConfigurationService(configurationManager, _logService.Object); var environment = configurationService.Get <CommonWebConfiguration>().Environment; var connectionString = configurationService.Get <SqlConfiguration>().ConnectionString; var originInitialCatalog = connectionString .Split(';') .Single(p => p.StartsWith("Initial Catalog")) .Split('=') .Last(); DatabaseTargetName = $"AvmsPlus-{environment}-Test"; TargetConnectionString = connectionString.Replace($"Initial Catalog={originInitialCatalog}", $"Initial Catalog={DatabaseTargetName}"); var databaseProjectPath = AppDomain.CurrentDomain.BaseDirectory + $"\\..\\..\\..\\{DatabaseProjectName}"; var dacPacRelativePath = $"\\bin\\{environment}\\{DatabaseProjectName}.dacpac"; DacPacFilePath = Path.Combine(databaseProjectPath + dacPacRelativePath); if (!File.Exists(DacPacFilePath)) { //For NCrunch on Dave's machine databaseProjectPath = $"C:\\_Git\\Beta\\src\\{DatabaseProjectName}"; DacPacFilePath = Path.Combine(databaseProjectPath + dacPacRelativePath); } }
public static void Main(string[] args) { var log = new ConsoleLogService(); var configService = new AzureBlobConfigurationService(new MyConfigurationManager(), log); var processor = new MigrationProcessor(configService, log); processor.Execute(new System.Threading.CancellationTokenSource().Token); Console.ReadKey(); }
static void Main(string[] args) { var log = new ConsoleLogService(); log.Info("Initialisation"); var options = new Options(); if (!CommandLine.Parser.Default.ParseArguments(args, options)) { return; } if (options.SourceConnectionString == null || options.TargetConnectionString == null || options.RecordBatchSize == 0) { var configService = new AzureBlobConfigurationService(new MyConfigurationManager(), log); var persistentConfig = configService.Get <MigrateFromAvmsConfiguration>(); if (options.SourceConnectionString == null) { options.SourceConnectionString = persistentConfig.SourceConnectionString; } if (options.TargetConnectionString == null) { options.TargetConnectionString = persistentConfig.TargetConnectionString; } if (options.RecordBatchSize == 0) { options.RecordBatchSize = persistentConfig.RecordBatchSize; } if (options.MaxNumberOfChangesToDetailPerTable == null) { options.MaxNumberOfChangesToDetailPerTable = persistentConfig.MaxNumberOfChangesToDetailPerTable; } if (options.AnonymiseData == false) { options.AnonymiseData = persistentConfig.AnonymiseData; } } if (options.Verbose) { Console.WriteLine($@" SourceConnectionString = {options.SourceConnectionString} TargetConnectionString = {options.TargetConnectionString} RecordBatchSize = {options.RecordBatchSize} MaxNumberOfChangesToDetailPerTable = {options.MaxNumberOfChangesToDetailPerTable} AnonymiseData = {options.AnonymiseData} SingleFullUpdate = {options.SingleFullUpdate} "); } var sourceDatabase = new GetOpenConnectionFromConnectionString(options.SourceConnectionString); var targetDatabase = new GetOpenConnectionFromConnectionString(options.TargetConnectionString); var genericSyncRepository = new GenericSyncRespository(log, sourceDatabase, targetDatabase); var avmsSyncRepository = new AvmsSyncRespository(log, sourceDatabase, targetDatabase); Func <ITableSpec, IMutateTarget> createMutateTarget; if (options.DummyRun) { createMutateTarget = tableSpec => new DummyMutateTarget(log, tableSpec); } else { createMutateTarget = tableSpec => new MutateTarget(log, genericSyncRepository, (int)Math.Max(5000 * tableSpec.BatchSizeMultiplier, 1), tableSpec); } var tables = new AvmsToAvmsPlusTables(log, options, avmsSyncRepository, !options.ExcludeVacancy).All; if (options.SingleTable != null) { tables = tables.Where(t => t.Name == options.SingleTable); } var controller = new Controller(options, log, genericSyncRepository, createMutateTarget, tables); if (options.Reset) { controller.Reset(); } var cancellationTokenSource = new System.Threading.CancellationTokenSource(); bool threaded = true; if (options.SingleFullUpdate) { controller.DoFullScanForAll(threaded); } else { controller.DoAll(new System.Threading.CancellationTokenSource(), threaded); } }