Exemplo n.º 1
0
        private MigrationRunner CreateRunner(MigrationDb db, out StringBuilder output)
        {
            var sb = output = new StringBuilder();

            var announcer = new TextWriterAnnouncer(s =>
            {
                if (sb.Length == 0)
                {
                    sb.AppendLine();
                }

                sb.Append(s);
            });

            IMigrationProcessorFactory factory   = CreateFactory(db.DatabaseServer);
            IMigrationProcessor        processor = factory.Create(db.ConnectionString, announcer, new MigrationOptions(db));

            var context = new RunnerContext(announcer)
            {
                Namespace          = db.NamespaceContainingMigrations,
                ApplicationContext = _kernel
            };

            return(new MigrationRunner(db.Assembly, context, processor));
        }
Exemplo n.º 2
0
 public MigrationConfiguration Add(MigrationDb migrationDb)
 {
     if (migrationDb == null)
     {
         throw new ArgumentNullException("migrationDb");
     }
     this._dbs.Add(migrationDb);
     return(this);
 }
            public void Add(MigrationDb migrationDb)
            {
                if (migrationDb == null)
                {
                    throw new ArgumentNullException(nameof(migrationDb));
                }

                _dbs.Add(migrationDb);
            }
Exemplo n.º 4
0
        public override void StartTask(ITaskExecutionContext context)
        {
            StringBuilder stringBuilder;
            bool          flag = this._loggingDisabler != null;

            MigrationDb[] array     = this._dbs;
            string[]      strArrays = (context.Arguments["Names"] ?? string.Empty).Split(new string[] { ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
            if (strArrays.Length != 0)
            {
                ILookup <string, MigrationDb> lookup = ((IEnumerable <MigrationDb>) this._dbs).ToLookup <MigrationDb, string, MigrationDb>((MigrationDb db) => db.IdentifyingName, (MigrationDb db) => db, StringComparer.OrdinalIgnoreCase);
                array = strArrays.SelectMany <string, MigrationDb>((string x) => lookup[x]).ToArray <MigrationDb>();
            }
            string lowerInvariant = (context.Arguments["Action"] ?? string.Empty).ToLowerInvariant();

            MigrationDb[] migrationDbArray = array;
            for (int i = 0; i < (int)migrationDbArray.Length; i++)
            {
                MigrationDb     migrationDb     = migrationDbArray[i];
                MigrationRunner migrationRunner = this.CreateRunner(migrationDb, out stringBuilder);
                if (lowerInvariant == "list")
                {
                    migrationDb.List(migrationRunner, context, this._kernel);
                }
                else if (lowerInvariant == "rollback")
                {
                    migrationDb.Rollback(migrationRunner, context, this._kernel);
                }
                else
                {
                    migrationDb.MigrateUp(migrationRunner, context, this._kernel);
                }
                migrationRunner.Processor.Dispose();
                if (stringBuilder.Length > 0)
                {
                    context.Log.Message(stringBuilder.ToString(), new object[0]);
                }
                if (flag)
                {
                    this._loggingDisabler.Dispose();
                    flag = false;
                }
            }
        }
Exemplo n.º 5
0
        private MigrationRunner CreateRunner(MigrationDb db, out StringBuilder output)
        {
            StringBuilder stringBuilder  = new StringBuilder();
            StringBuilder stringBuilder1 = stringBuilder;

            output = stringBuilder;
            StringBuilder       stringBuilder2      = stringBuilder1;
            TextWriterAnnouncer textWriterAnnouncer = new TextWriterAnnouncer((string s) => {
                if (stringBuilder2.Length == 0)
                {
                    stringBuilder2.AppendLine();
                }
                stringBuilder2.Append(s);
            });
            IMigrationProcessor migrationProcessor = MigrateTask.CreateFactory(db.DatabaseServer).Create(db.ConnectionString, textWriterAnnouncer, new MigrateTask.MigrationOptions());
            RunnerContext       runnerContext      = new RunnerContext(textWriterAnnouncer)
            {
                Namespace          = db.NamespaceContainingMigrations,
                ApplicationContext = this._kernel
            };

            return(new MigrationRunner(db.Assembly, runnerContext, migrationProcessor));
        }
Exemplo n.º 6
0
 public MigrationOptions(MigrationDb db)
 {
     PreviewOnly      = false;
     ProviderSwitches = null;
     Timeout          = db.Timeout;
 }