public void CanUploadTable() { var manifestObject = GetJsonFile <DatabaseJobManifest>(_inputRoot, "database.manifest.mysql.json"); var sql = GetJsonFile <TargetSql>(_inputRoot, "mysql.target.ateam.json"); var data = CreateTable(); var target = new MySqlWriter(); target.UploadTable(connectionString, sql.SetupTempDml, manifestObject.manifest.tables[0], data, new List <string> { sql.UpdateFromTempDml, sql.ClearTempDml }); var reader = new MySqlReader(); // Only get the records what you have Updated in database on the basis of Ids {Primary Keys} var result = reader.GetData(connectionString, $"select * from ex8_db1.ATeam where Id in ({string.Join(",",data.AsEnumerable().Select(r => r.Field<dynamic>("Id")))})"); result.Tables.Should().NotBeEmpty(); result.Tables[0].Rows.Should().NotBeEmpty(); result.Tables[0].Should().Equals(data); }
public void UploadTable_LoadTest() { int recordCount = 500000; var data = CreateTable("Post", recordCount); var manifestObject = GetJsonFile <DatabaseJobManifest>(_inputRoot, "database.manifest.mysql.json"); var sql = GetJsonFile <TargetSql>(_inputRoot, "mysql.target.ateam.json"); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // start timer var target = new MySqlWriter(); target.UploadTable(connectionString, sql.SetupTempDml, manifestObject.manifest.tables[0], data, new List <string> { sql.UpdateFromTempDml, sql.ClearTempDml }); stopwatch.Stop(); // end timer var ElapsedDuration = stopwatch.Elapsed; // this is the elapsed duration for updating RecordsCount records in table database WriteLogCsvFile(new CsvLogger { TestDate = DateTime.Now, NoOfRecords = recordCount, TimeElapsed = ElapsedDuration }); }
public virtual void Cleanup() { MySqlWriter.Dispose(); MySqlDirectory.Dispose(); MySqlOperator.Dispose(); FileWriter.Dispose(); FileDirectory.Dispose(); }
public void Can_BulkCopy() { var data = CreateTable(); var manifestObject = GetJsonFile <DatabaseJobManifest>(_inputRoot, "database.manifest.mysql.json"); var inputSqlQueries = GetJsonFile <TargetSql>(_inputRoot, "mysql.target.ateam.json"); MySqlWriter target = new MySqlWriter(); target.ExecuteSqlText(connectionString, inputSqlQueries.SetupTempDml); //Temp Table Created at this stage {ex8_temp_ATeam} var outputNOfRecords = target.BulkCopy(connectionString, manifestObject.manifest.tables[0], data); // copy records into temp. table {ex8_temp_ATeam} data.Rows.Count.Should().Be(outputNOfRecords); }
public void UploadTable_SetupSource() { var data = CreateTable("Pre", 500000); var manifestObject = GetJsonFile <DatabaseJobManifest>(_inputRoot, "database.manifest.mysql.json"); var table = manifestObject.manifest.tables[0]; table.temp_name = table.qualified_table_name; //initialized Table-TempName with ATeam Table var target = new MySqlWriter(); target.ExecuteSqlText(connectionString, new List <string> { $"truncate table {table.temp_name}" }); // Cleaning the ATeam Table first before adding these records with data var outputnoOfRecord = target.BulkCopy(connectionString, table, data); // This call should copy records from data to ATeam directly. data.Rows.Count.Should().Be(outputnoOfRecord); }
public MySqlQueryProvider() { TypeConverter = new MySqlTypeConverter(); SqlWriter = new MySqlWriter(); }
public MySqlQueryProvider() { SqlWriter = new MySqlWriter(); }