public override void CreateBulkInsertTask(string table, EnumerableDataReader reader, ImportTarget target) { BulkCopyTask task = new BulkCopyTask(new MySqlBulkInserter(Config.Provider.ConnectionString, table, target.Schema), table, reader, target.Name, Config.BatchSize, target.Schema); Jobs.Find(j => j.Tag == table).Tasks.Add(task); }
public override void CreateBulkInsertTask(string table, EnumerableDataReader reader, ImportTarget target) { BulkCopyTask task = new BulkCopyTask(new SQLiteBulkInserter(_targetPath, target.Schema, table), table, reader, target.Name, Config.BatchSize, target.Schema); task.PostProcess += PostProcess; // when the task is complete, merge into main file _locks[task.Schema] = new object(); Jobs.Find(j => j.Tag == target.Schema).Tasks.Add(task); }
internal BulkCopyTask(BulkCopyBase bc, string table, EnumerableDataReader readerIn, string site, int batchSize, string schema) { _id = Guid.NewGuid(); _bc = bc; _site = site; _table = table; _schema = schema; _batchSize = batchSize; _readerIn = readerIn; }
public virtual void Configure() { foreach (ImportTarget target in Config.Targets) { foreach (Type type in Config.GetAllTableTypes()) { MethodInfo methodInfo = typeof (SoBase<>).MakeGenericType(type).GetMethod("FromXmlDocument"); IEnumerable sequence = (IEnumerable) methodInfo.Invoke(null, new object[] {target.Path, target.Name}); EnumerableDataReader reader = new EnumerableDataReader(sequence); CreateBulkInsertTask(type.Name, reader, target); } PrepareDatabase(target.Schema); } }
public abstract void CreateBulkInsertTask(string table, EnumerableDataReader reader, ImportTarget target);