private static void DumpDDL(DbTable[] tables) { var script = DbSchemaParser.GenerateScript(new DbSchema(@"iFSA", tables)); File.WriteAllText(@"C:\temp\schema.sql", script); var schema = DbSchemaParser.Parse(script); for (int index = 0; index < schema.Tables.Length; index++) { var a = schema.Tables[index]; var b = tables[index]; Console.WriteLine(IsEqual(a, b)); } }
static void Main(string[] args) { IConfiguration config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", true, true) .Build(); var destFolder = config["SaveDestinationDirectory"]; var connectionString = config["DbConnectionString"]; var gitUserName = config["GitUserName"]; var gitPassword = config["GitPassword"]; var gitBranch = config["GitBranch"]; var gitCommitterAuthorName = config["CommitterAuthorName"]; var gitCommitterAuthorEmail = config["CommitterAuthorEmail"]; var dbSchemaParser = new DbSchemaParser(connectionString); var modules = dbSchemaParser.GetSchema(); var schemaSaver = new SchemaToFileSaver(destFolder); schemaSaver.Save(modules); schemaSaver.DeleteNotExisting(modules); var gitter = new Gitter(destFolder, gitUserName, gitPassword, gitBranch); if (!string.IsNullOrWhiteSpace(gitCommitterAuthorName)) { gitter.CommitterAuthorName = gitCommitterAuthorName; } if (!string.IsNullOrWhiteSpace(gitCommitterAuthorEmail)) { gitter.CommitterAuthorEmail = gitCommitterAuthorEmail; } var pushed = gitter.TryPush(out var pushResultMessage); Console.WriteLine(pushed ? "Pushed properly" : "Error occurred"); Console.WriteLine(pushResultMessage); }