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); }