internal ISqlNode PrepareParse() { if (!File.Exists(_sqlFilePath)) { throw new InvalidSqlFileException(ExceptionMessageId.EspC001, _sqlFilePath); } var rawSql = File.ReadAllText(_sqlFilePath); if (string.IsNullOrWhiteSpace(rawSql)) { throw new InvalidSqlFileException(ExceptionMessageId.EspC002, _sqlFilePath); } if (_config == null) { throw new InvalidSqlParserConfigException(ExceptionMessageId.EspD001); } if (_config.DbConnectionKind == DbConnectionKind.Unknown) { throw new InvalidSqlParserConfigException(ExceptionMessageId.EspD002); } if (_config.DataParameterCreator == null) { throw new InvalidSqlParserConfigException(ExceptionMessageId.EspD003); } _evaluator = new EasyExpressionEvaluator(_sqlFilePath); ISqlNode sqlNode = null; var hasCache = false; if (ConfigContainer.EnableCache) { if (SqlCache.TryGetValue(_sqlFilePath, out SqlFileInfo info)) { sqlNode = info.SqlNode; hasCache = true; } } if (!hasCache) { var parser = new DomaSqlParser(rawSql); sqlNode = parser.Parse(); if (ConfigContainer.EnableCache) { var info = new SqlFileInfo { FilePath = _sqlFilePath, RawSql = rawSql, SqlNode = sqlNode }; SqlCache.TryAdd(_sqlFilePath, info); } } return(sqlNode); }
/// <summary> /// Is executed after the content of the migration file has been copied to output file /// </summary> /// <param name="version"></param> /// <param name="file"></param> public virtual void AfterMigrationFile(Version version, SqlFileInfo file) { if (file.SqlInsertMigration) { streamWriter.WriteLine("INSERT INTO migrations (major, minor, filename) VALUES('{0}', '{1}', '{2}');", version.Major, version.Minor, file.FileInfo.Name); } }
public override void AfterMigrationFile(Version version, SqlFileInfo file) { // GO is needed for applying multiple DDL statements in one transaction streamWriter.WriteLine("GO"); base.AfterMigrationFile(version, file); streamWriter.WriteLine("GO"); }
/// <summary> /// Is executed before the content of the migration file is copied to output file /// </summary> /// <param name="version"></param> /// <param name="file"></param> public virtual void BeforeMigrationFile(Version version, SqlFileInfo file) { streamWriter.WriteLine("-- db-migrator:FILE: {0}", file.FileInfo.Name); }