Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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();
        }
Example #7
0
 public static CcMigrationScript IfExistHistoryTable(this CcMigrationScript script)
 {
     script._doc.AppendLine(IfExist(script._table.Schema, "h_" + script._table.Name));
     script._doc.AppendLine();
     return(script);
 }
Example #8
0
 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);
 }
Example #9
0
 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);
 }
Example #10
0
 public static CcMigrationScript DropMasterTable(this CcMigrationScript script)
 {
     script._doc.AppendLine(PostgresQueries.DropTableByName(script._table.Schema, script._table.Name));
     script._doc.AppendLine();
     return(script);
 }
Example #11
0
 public static CcMigrationScript EndIf(this CcMigrationScript script)
 {
     script._doc.AppendLine(EndIf());
     script._doc.AppendLine();
     return(script);
 }