public void RunCommandsInSQLFile(StringBuilder sqlFilePath, MigrationDirectionEnum direction = MigrationDirectionEnum.Up)
        {
            CreateMigrationsDbObjectsIfAppropriate();

            using (FileStream _FileStrm = File.OpenRead(sqlFilePath.ToString()))
            {
                StreamReader reader = new StreamReader(_FileStrm);

                foreach (string currentSqlCommand in CleanSQL(reader))
                {
                    if (currentSqlCommand.Length > 0) runSQLcommand(new StringBuilder(currentSqlCommand), sqlFilePath);
                }
            }

            LogMigration(Path.GetFileName(sqlFilePath.ToString()), direction);
        }
        public void LogMigration(string filename, MigrationDirectionEnum direction)
        {
            StringBuilder recordMigrationSQL =
                new StringBuilder(string.Format(
            @"IF NOT EXISTS (SELECT * FROM migrator.VersionInfo WHERE MigrationFilename = N'{0}')
            BEGIN
            INSERT INTO migrator.VersionInfo (MigrationFilename, DateTimeApplied, Direction)
            VALUES (N'{0}', CAST(N'{1}' AS DATETIME), N'{2}');
            END
            ELSE
            BEGIN
            UPDATE migrator.VersionInfo
            SET MigrationFilename = N'{0}', DateTimeApplied = CAST(N'{1}' AS DATETIME), Direction = N'{2}'
            WHERE MigrationFilename = N'{0}'
            END
            ",
                    filename.ToString(),
                    DateTime.Now.ToString("dd MMM yyyy HH:mm:ss"),
                    direction.ToString().ToUpper()[0]));

            runSQLcommand(recordMigrationSQL);
        }