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);
        }
Пример #2
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 public MySqlQueryProvider()
 {
     TypeConverter = new MySqlTypeConverter();
     SqlWriter     = new MySqlWriter();
 }
Пример #7
0
 public MySqlQueryProvider()
 {
     SqlWriter = new MySqlWriter();
 }