/// <summary> /// Execute the sql command by slitting file by lines that contain 'GO' /// </summary> /// <param name="profile"></param> /// <param name="transaction"></param> public void ExecuteSql(DatabaseVersionSetup.Profile profile, ITransaction transaction) { var stringBuilder = new StringBuilder(); foreach (var file in _files){ using (var stream = File.OpenRead(profile.VariableReplace(file))) { using (var streamReader = new StreamReader(stream)){ while (!streamReader.EndOfStream){ var readLine = streamReader.ReadLine(); if (readLine.Trim().Equals("GO")){ Execute(profile, stringBuilder, transaction); stringBuilder = new StringBuilder(); } else{ stringBuilder.AppendLine(readLine); } } //make sure we execute everything Execute(profile, stringBuilder, transaction); } } } }
public void ExecuteSql(DatabaseVersionSetup.Profile profile, ITransaction transaction) { IConnection connection = profile.RepositoryProfile.GetDatabase(); connection.ExecuteSql(profile.VariableReplace(_sql), transaction); }
/// <summary> /// Will initialize on initial setup /// </summary> /// <param name="profile"></param> /// <param name="transaction"></param> public void InitializeNewTracker(DatabaseVersionSetup.Profile profile, ITransaction transaction) { string replace = profile.VariableReplace(profile.RepositoryProfile is SqlServerDatabaseProfile? SqlServerCreateTracker : MysqSqlCreateTracker); replace = replace.Replace(TablePlaceHolder, TableName); profile.RepositoryProfile.GetDatabase().ExecuteSql(replace, transaction); }
private void Execute(DatabaseVersionSetup.Profile profile, StringBuilder stringBuilder, ITransaction transaction) { var trim = stringBuilder.ToString().Trim(); if (trim.Length > 0){ profile.RepositoryProfile.GetDatabase().ExecuteSql(profile.VariableReplace(trim), transaction); } }