open($source_config); $target_driver = $config['target']['driver']; $target_config = $config['target']['config']; $class = '\\DbCopy\\Driver\\'.$target_driver; $target = new $class(); $target->open($target_config); $transforms = []; if (isset($config['transform'])) { foreach ($config['transform'] as $transform) { $transform_type = $transform['type']; $transform_config = $transform['config']; $class = '\\DbCopy\\Transform\\'.$transform_type; $transforms[] = new $class($transform_config); } } $filter_column = $config['filter']['column']; $filter_values = $config['filter']['values']; $copy_options = $config['options']; $results = []; foreach ($filter_values as $filter_value) { echo "===== COPYING $filter_column=$filter_value =====".PHP_EOL; $copy = \DbCopy\Copy::create($copy_options); // FIXME: This query thing is ES-specific $copy->source($source, ['query'=>[$filter_column=>$filter_value]]); $copy->destination($target); if (!empty($transforms)) $copy->transform(\DbCopy\Transform\Group::create($transforms)); $count = $copy->execute(); echo "Copied: $count records".PHP_EOL; $results[$filter_value] = $count; } var_dump($results);