public int Run(AddMigrationParams migrationParams) { if (!File.Exists(migrationParams.AssemblyFileName)) { return(ExitCode.CanNotFindFile); } var context = DbContextFactory.CreateContextInstance(migrationParams.AssemblyFileName, migrationParams.DbContextTypeFullName); var serviceCollection = new ServiceCollection(); serviceCollection .AddEntityFrameworkDesignTimeServices() .AddDbContextDesignTimeServices(context); var designTimeServices = new SqlServerDesignTimeServices(); designTimeServices.ConfigureDesignTimeServices(serviceCollection); var serviceProvider = serviceCollection.BuildServiceProvider(); var migrationScaffolder = serviceProvider.GetService <IMigrationsScaffolder>(); var migration = migrationScaffolder.ScaffoldMigration( migrationName: migrationParams.MigrationName, rootNamespace: migrationParams.ContextNamespace, subNamespace: migrationParams.SubNamespace, language: Constants.ProgrammingLanguage); var files = migrationScaffolder.Save(migrationParams.ProjectDir, migration, migrationParams.OutputDir); return(ExitCode.Success); }
static int Main(string[] args) { if (args == null || args.Length == 0) { return(ExitCode.InvalidArguments); } try { if (args[0] == CommandType.AddMigration) { var commandParams = AddMigrationParams.FromArgumentsArray(args); return(new AddMigrationExecutor().Run(commandParams)); } else if (args[0] == CommandType.ScriptMigration) { var commandParams = ScriptMigrationParams.FromArgumentsArray(args); return(new ScriptMigrationExecutor().Run(commandParams)); } else if (args[0] == CommandType.FindDbContextSubtypes) { var commandParams = FindDbContextSubtypeParams.FromArgumentsArray(args); var types = TypeFinder.GetDbContextTypeFullNamesFromAssebly(commandParams.AssemblyFileName); return(writeResult(types)); } else if (args[0] == CommandType.FindMigrationSubtypes) { var commandParams = FindMigrationSubtypeParams.FromArgumentsArray(args); var types = TypeFinder.GetMigrationByDbContextFromAssebly(commandParams.AssemblyFileName); return(writeResult(types)); } } catch (InvalidOperationException) { return(ExitCode.CanNotFindDbContext); } catch (FileNotFoundException e) { LogException(e); return(ExitCode.CanNotFindFile); } catch (ArgumentException e) { LogException(e); return(ExitCode.InvalidArguments); } catch (Exception e) { LogException(e); return(ExitCode.Exception); } return(ExitCode.InvalidCommand); }
public int AddMigration(AddMigrationParams commandParams) { var processRunner = new ProcessRunner(); return(processRunner.Execute(commandParams)); }