Beispiel #1
0
 public DataMigrationScriptsExecuter(ISqlExecuter sqlExecuter, ILogProvider logProvider, DataMigrationScripts dataMigrationScripts,
                                     DbUpdateOptions dbUpdateOptions, SqlTransactionBatches sqlTransactionBatches)
 {
     _sqlExecuter           = sqlExecuter;
     _logger                = logProvider.GetLogger("DataMigration");
     _dataMigrationScripts  = dataMigrationScripts;
     _sqlTransactionBatches = sqlTransactionBatches;
     _dbUpdateOptions       = dbUpdateOptions;
 }
 public KeepSynchronizedRecomputeOnDeploy(
     GenericRepositories genericRepositories,
     ILogProvider logProvider,
     CurrentKeepSynchronizedMetadata currentKeepSynchronizedMetadata,
     DbUpdateOptions dbUpdateOptions,
     IDslModel dslModel)
 {
     _genericRepositories = genericRepositories;
     _performanceLogger   = logProvider.GetLogger("Performance." + GetType().Name);
     _logger = logProvider.GetLogger("KeepSynchronizedRecomputeOnDeploy");
     _currentKeepSynchronizedMetadata = currentKeepSynchronizedMetadata;
     _dbUpdateOptions = dbUpdateOptions;
     _dslModel        = dslModel;
 }
 public DatabaseGenerator(
     SqlTransactionBatches sqlTransactionBatches,
     IConceptApplicationRepository conceptApplicationRepository,
     ILogProvider logProvider,
     DbUpdateOptions dbUpdateOptions,
     DatabaseAnalysis databaseAnalysis)
 {
     _sqlTransactionBatches        = sqlTransactionBatches;
     _conceptApplicationRepository = conceptApplicationRepository;
     _logger            = logProvider.GetLogger(GetType().Name);
     _changesLogger     = logProvider.GetLogger("DatabaseGeneratorChanges");
     _performanceLogger = logProvider.GetLogger("Performance." + GetType().Name);
     _dbUpdateOptions   = dbUpdateOptions;
     _databaseAnalysis  = databaseAnalysis;
 }
 public DatabaseDeployment(
     ILogProvider logProvider,
     ISqlExecuter sqlExecuter,
     DatabaseCleaner databaseCleaner,
     DataMigrationScriptsExecuter dataMigrationScriptsExecuter,
     IDatabaseGenerator databaseGenerator,
     IConceptDataMigrationExecuter dataMigrationFromCodeExecuter,
     DbUpdateOptions options)
 {
     _logger          = logProvider.GetLogger(GetType().Name);
     _sqlExecuter     = sqlExecuter;
     _databaseCleaner = databaseCleaner;
     _dataMigrationScriptsExecuter  = dataMigrationScriptsExecuter;
     _databaseGenerator             = databaseGenerator;
     _dataMigrationFromCodeExecuter = dataMigrationFromCodeExecuter;
     _options = options;
 }
Beispiel #5
0
        private string TestExecuteDataMigrationScripts(string[] scriptsDescriptions, out List <string> log, out List <string> sqlLog, bool skipScriptsWithWrongOrder = false)
        {
            log = new List <string>();

            var sqlExecuterLog = new SqlExecuterLog();

            sqlLog = sqlExecuterLog;

            using (var container = new RhetosTestContainer())
            {
                container.InitializeSession += builder =>
                {
                    builder.RegisterInstance(sqlExecuterLog).ExternallyOwned();
                    builder.RegisterDecorator <SqlExecuterMonitor, ISqlExecuter>();
                };

                container.AddLogMonitor(log);

                var sqlExecuter = container.Resolve <ISqlExecuter>();
                sqlExecuter.ExecuteSql("DELETE FROM Rhetos.DataMigrationScript");

                var sqlBatches = container.Resolve <SqlTransactionBatches>();

                int deployment = 0;
                foreach (string scriptsDescription in scriptsDescriptions)
                {
                    sqlExecuter.ExecuteSql($"--DBUpdate: {++deployment}");
                    var dbUpdateOptions = new DbUpdateOptions()
                    {
                        DataMigrationSkipScriptsWithWrongOrder = skipScriptsWithWrongOrder
                    };
                    var dataMigration = new DataMigrationScriptsExecuter(sqlExecuter, container.Resolve <ILogProvider>(),
                                                                         ParseDataMigrationScriptsFromScriptsDescription(scriptsDescription), dbUpdateOptions, sqlBatches);
                    dataMigration.Execute();
                }

                var report = new List <string>();
                sqlExecuter.ExecuteReader("SELECT Path, Active FROM Rhetos.DataMigrationScript ORDER BY OrderExecuted",
                                          reader => report.Add(reader.GetString(0).Replace(".sql", "") + (reader.GetBoolean(1) ? "" : "-")));
                return(string.Join(", ", report));
            }
        }
        private string TestExecuteDataMigrationScripts(string[] scriptsDescriptions, out List <string> log, out List <string> sqlLog, bool skipScriptsWithWrongOrder = false)
        {
            var systemLog = new List <string>();

            log = systemLog;

            var sqlExecuterLog = new SqlExecuterLog();

            sqlLog = sqlExecuterLog;

            using (var scope = TestScope.Create(builder => builder
                                                .ConfigureLogMonitor(systemLog)
                                                .ConfigureSqlExecuterMonitor(sqlExecuterLog)))
            {
                var sqlExecuter = scope.Resolve <ISqlExecuter>();
                sqlExecuter.ExecuteSql("DELETE FROM Rhetos.DataMigrationScript");

                var sqlBatches = scope.Resolve <SqlTransactionBatches>();

                int deployment = 0;
                foreach (string scriptsDescription in scriptsDescriptions)
                {
                    sqlExecuter.ExecuteSql($"--DBUpdate: {++deployment}");
                    var dbUpdateOptions = new DbUpdateOptions()
                    {
                        DataMigrationSkipScriptsWithWrongOrder = skipScriptsWithWrongOrder
                    };
                    var dataMigration = new DataMigrationScriptsExecuter(sqlExecuter, scope.Resolve <ILogProvider>(),
                                                                         ParseDataMigrationScriptsFromScriptsDescription(scriptsDescription), dbUpdateOptions, sqlBatches);
                    dataMigration.Execute();
                }

                var report = new List <string>();
                sqlExecuter.ExecuteReader("SELECT Path, Active FROM Rhetos.DataMigrationScript ORDER BY OrderExecuted",
                                          reader => report.Add(reader.GetString(0).Replace(".sql", "") + (reader.GetBoolean(1) ? "" : "-")));
                return(string.Join(", ", report));
            }
        }