23 private $selectGeneratorFactory;
28 private $resourceConnection;
33 private $uniqueConstraintsResolver;
38 private $dumpAccessor;
43 private $selectFactory;
60 $this->selectGeneratorFactory = $selectGeneratorFactory;
62 $this->uniqueConstraintsResolver = $uniqueConstraintsResolver;
63 $this->dumpAccessor = $dumpAccessor;
64 $this->selectFactory = $selectFactory;
74 private function prepareColumnSelect(
Column $column, array $fieldsToDump)
76 $adapter = $this->resourceConnection->getConnection($column->
getTable()->getResource());
89 $columns = $this->uniqueConstraintsResolver->resolve($column->getTable());
95 $connectionName = $column->getTable()->getResource();
98 $selectGenerator = $this->selectGeneratorFactory->create();
99 $resourceSignature = $this->generateDumpFileSignature($column);
101 foreach ($selectGenerator->generator(
$select, $connectionName) as
$data) {
102 $this->dumpAccessor->save($resourceSignature,
$data);
116 $adapter = $this->resourceConnection->getConnection(
$table->getResource());
117 $firstRow = reset(
$data);
122 foreach (
$table->getColumns() as $column) {
133 private function generateDumpFileSignature(Column $column)
136 $column->getTable()->getName(),
137 $column->getElementType(),
141 return implode(
"_", $dimensions);
150 $file = $this->generateDumpFileSignature($column);
151 $generator = $this->dumpAccessor->read($file);
155 $this->applyDumpChunk(
162 $this->dumpAccessor->destruct($file);
dump(ElementInterface $column)
__construct(ResourceConnection $resourceConnection, SelectGeneratorFactory $selectGeneratorFactory, DumpAccessorInterface $dumpAccessor, UniqueConstraintsResolver $uniqueConstraintsResolver, SelectFactory $selectFactory)
isAcceptable(ElementInterface $element)
restore(ElementInterface $column)