public static CcMigrationScript CreateHistoryTable(this CcMigrationScript script, NpgsqlConnection connection, string owner) { var tableCreator = new TableCreatonBuilder(connection, owner, script._table.Schema, $"h_{script._table.Name}"); tableCreator.GetCreationScript(script._doc); script._doc.AppendLine(); return(script); }
public static CcMigrationScript CreateFunction(this CcMigrationScript script, NpgsqlConnection connection, string owner) { var funcCreator = new FunctionCreationBuilder(connection, owner, script._table.Schema, script._table.Name); funcCreator.GetCreationScript(script._doc); script._doc.AppendLine(); return(script); }
public static CcMigrationScript CreateIndexForHistoryTable(this CcMigrationScript script, NpgsqlConnection connection) { var idxCreator = new IndexCreationBuilder(connection, script._table.Schema, $"h_{script._table.Name}"); idxCreator.GetCreationScript(script._doc); script._doc.AppendLine(); return(script); }
public static CcMigrationScript CreateTrigger(this CcMigrationScript script, NpgsqlConnection connection) { var triggerCreator = new TriggerCreationBuilder(connection, script._table.Schema, script._table.Name); triggerCreator.GetCreationScript(script._doc); script._doc.AppendLine(); return(script); }
public static CcMigrationScript InsertAllValues(this CcMigrationScript script, NpgsqlConnection connection) { var inserter = new InsertionScript(connection, script._table.Schema, script._table.Name); inserter.GetCreationScript(script._doc); script._doc.AppendLine(); return(script); }
static void Main(string[] args) { var config = GetConfigureObject(@".\config.json"); var fileBegining = @"DO" + Environment.NewLine + "$$" + Environment.NewLine + "BEGIN" + Environment.NewLine; var EOF = @"END" + Environment.NewLine + "$$"; using (var file = new StreamWriter(config.OutputFile)) using (var connect = new NpgsqlConnection(config.ConnectionString)) { file.Write(fileBegining); connect.Open(); foreach (var table in config.Tables) { Console.WriteLine($"{table.Schema}.{table.Name}..."); var doc = new CcMigrationScript(table); if (table.HasHistory) { doc.IfExistHistoryTable() .DropTrigger() .DropFunction() .DropHistoryTable() .EndIf(); } doc.IfExistMasterTable() .DropMasterTable() .EndIf() .CreateMasterTable(connect, config.Owner) .CreateIndexForMasterTable(connect); if (table.HasHistory) { doc.CreateHistoryTable(connect, config.Owner) .CreateIndexForHistoryTable(connect) .CreateFunction(connect, config.Owner) .CreateTrigger(connect); } doc.InsertAllValues(connect); file.WriteLine(doc._doc); } file.Write(EOF); } Console.WriteLine("Success"); Console.ReadLine(); }
public static CcMigrationScript IfExistHistoryTable(this CcMigrationScript script) { script._doc.AppendLine(IfExist(script._table.Schema, "h_" + script._table.Name)); script._doc.AppendLine(); return(script); }
public static CcMigrationScript DropTrigger(this CcMigrationScript script) { script._doc.AppendLine(PostgresQueries.DropTrigger(script._table.Schema, script._table.Name, $"tr_history_{script._table.Name}")); script._doc.AppendLine(); return(script); }
public static CcMigrationScript DropFunction(this CcMigrationScript script) { script._doc.AppendLine(PostgresQueries.DropFunction(script._table.Schema, script._table.Name, $"process_{script._table.Name}_audit")); script._doc.AppendLine(); return(script); }
public static CcMigrationScript DropMasterTable(this CcMigrationScript script) { script._doc.AppendLine(PostgresQueries.DropTableByName(script._table.Schema, script._table.Name)); script._doc.AppendLine(); return(script); }
public static CcMigrationScript EndIf(this CcMigrationScript script) { script._doc.AppendLine(EndIf()); script._doc.AppendLine(); return(script); }