static int Main(string[] args) { Console.WriteLine("TypeForwarding Assembly generator"); Console.WriteLine("Copyright (c) Karim Audrey Luccin"); if (args == null || args.Length < 2) { Console.WriteLine("Invalid argument counts"); return Usage(); } else { try { var dest_file = args[0]; var assemblyNames = new string[args.Length - 1]; for (int i = 1; i < args.Length; i++) assemblyNames[i-1] = args[i]; var generator = new ForwardGenerator(); generator.Generate(dest_file, assemblyNames); return 0; } catch (Exception ex) { Console.WriteLine(ex); return 2; } } }
public string[] Generate(string databaseName) { var newGenes = GetEvolutionHistory(databaseName); var ahead = _evolutionHistory.Subtract(newGenes); if (ahead.Any) { throw new InvalidOperationException( "The target database is ahead of the desired genome. Execute \"Evolve-Database -Force\" or call \"DevolveDatabase()\" on the DatabaseEvolver to roll back, which may destroy data."); } var difference = newGenes.Subtract(_evolutionHistory); var generator = new ForwardGenerator(databaseName, difference); while (generator.Any) { generator.AddGene(generator.Head); } return(generator.Sql.ToArray()); }
public string[] Generate(string databaseName) { var newMigrations = GetMigrationHistory(databaseName); var ahead = _migrationHistory.Subtract(newMigrations); if (ahead.Any) { throw new InvalidOperationException( "The target database is ahead of the desired migration. You can force a rollback, which may destroy data."); } var difference = newMigrations.Subtract(_migrationHistory); var generator = new ForwardGenerator(databaseName, difference); while (generator.Any) { generator.AddMigration(generator.Head); } return(generator.Sql.ToArray()); }