Пример #1
0
        public void Act(params object[] args)
        {
            var table = _mssqlDbService.GetTable(_tableOptions.Name);

            table.Columns = _mssqlDbService.GetTableColumns(_tableOptions.Name);

            var sb = new StringBuilder();

            _stringBuilderService.CreateTdsExtension(sb)
            .CreateServerForDb(sb, table)
            .CreateUserMapping(sb)
            .CreateSchema(sb)
            .DropTableIfExists(sb, table)
            .CreateTableScript(sb, table);

            var script = sb.ToString();

            if (Application.Configuration.GetValue <string>("scriptsavedirectory") != null)
            {
                SaveToFile($"{Application.Configuration.GetValue<string>("scriptsavedirectory")}{_mssqlConnectOptions.Database}_{_tableOptions.Name}.sql", script);
            }

            if (Application.Configuration.GetValue <bool>("scriptshowonly"))
            {
                if (!Application.Configuration.GetValue <bool>("confirm"))
                {
                    goto Exit;
                }

                Console.WriteLine(script);
                Console.Write("Execute script?[Y]");
                var keyInfo = Console.ReadKey();
                Console.WriteLine();
                if (keyInfo.Key == ConsoleKey.Y)
                {
                    _pgDbService.ExecuteScript(script);
                    Console.WriteLine("Script successfull executed.");
                }

Exit:
                return;
            }

            _pgDbService.ExecuteScript(script);
            Console.WriteLine("Script successfull executed.");
        }