protected override int Execute() { if (_script.HasValue()) { var sql = CreateExecutor().ScriptUpdate( _sourceMigration.Value(), _targetMigration.Value(), _force.HasValue(), ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()); Reporter.WriteData(sql); } else { Reporter.WriteInformation(MyResources.UpdateDatabaseCommand_VerboseInstructions); try { CreateExecutor().Update( _targetMigration.Value(), _force.HasValue(), ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()); } catch (WrappedException ex) { if (ex.Type == "System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException") { Reporter.WriteWarning(ex.Message); Reporter.WriteWarning(MyResources.AutomaticMigrationDisabledInfo); } else { throw; } } } return(base.Execute()); }
protected override int Execute() { Reporter.WriteInformation(MyResources.GetMigrationsCommand_Intro); var migrations = CreateExecutor().GetDatabaseMigrations( ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()); if (migrations.Any()) { foreach (var migration in migrations) { Reporter.WriteData(migration); } } else { Reporter.WriteInformation(MyResources.GetMigrationsCommand_NoHistory); } return(base.Execute()); }
protected override int Execute() { var scaffoldedMigration = CreateExecutor().Scaffold( _name.Value, ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value(), _ignoreChanges.HasValue()); Reporter.WriteInformation( string.Format( !scaffoldedMigration.IsRescaffold ? MyResources.ScaffoldingMigration : MyResources.RescaffoldingMigration, _name.Value)); var userCodePath = WriteMigration(scaffoldedMigration, scaffoldedMigration.IsRescaffold, _force.HasValue(), _name.Value); if (!scaffoldedMigration.IsRescaffold) { Reporter.WriteWarning(string.Format(MyResources.SnapshotBehindWarning, _name.Value)); var databaseMigrations = CreateExecutor().GetDatabaseMigrations( ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()) .Take(2).ToList(); var lastDatabaseMigration = databaseMigrations.FirstOrDefault(); if ((lastDatabaseMigration != null) && string.Equals(lastDatabaseMigration.MigrationName(), _name.Value, StringComparison.Ordinal)) { var revertTargetMigration = databaseMigrations.ElementAtOrDefault(1); Reporter.WriteWarning( string.Format( MyResources.DidYouMeanToRescaffold, _name.Value, revertTargetMigration ?? "$InitialDatabase", Path.GetFileName(userCodePath))); } } if (_json.HasValue()) { string migrationPath = null; string migrationDesignerPath = null; string migrationResourcesPath = null; if (scaffoldedMigration != null) { var absoluteMigrationsDirectory = Path.Combine(ProjectDir.Value(), scaffoldedMigration.Directory); migrationPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + "." + scaffoldedMigration.Language); migrationDesignerPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + ".resx"); migrationResourcesPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + ".Designer." + scaffoldedMigration.Language); } Reporter.WriteData("{"); Reporter.WriteData(" \"migration\": " + Json.Literal(migrationPath) + ","); Reporter.WriteData(" \"migrationResources\": " + Json.Literal(migrationDesignerPath) + ","); Reporter.WriteData(" \"migrationDesigner\": " + Json.Literal(migrationResourcesPath)); Reporter.WriteData("}"); } return(base.Execute()); }