Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Performs the database migration which handles updates to the database.
 /// </summary>
 private void DoMigrations()
 {
     var settings = new MigrationsConfig();
     _migrator = new DbMigrator(settings);
     _migrator.Update();
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Performs database migrations which handle any updates to the database.
 /// </summary>
 private static void DoMigrations()
 {
     var settings = new MigrationsConfig();
     var migrator = new DbMigrator(settings);
     migrator.Update();
 }