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)); }
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); }
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; } } }
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)); }
public MigrationOptions(MigrationDb db) { PreviewOnly = false; ProviderSwitches = null; Timeout = db.Timeout; }