function getUpserter(\TestDbAcle\Psv\Table\Table $table, $valuesToBeInserted = array()) { $tableName = $table->getName(); if ($table->getMeta()->isReplaceMode()) { $identifyMap = array(); foreach ($table->getMeta()->getIdentifyColumns() as $idColumn) { $identifyMap[$idColumn] = $valuesToBeInserted[$idColumn]; } if ($this->pdoFacade->recordExists($tableName, $identifyMap)) { return new \TestDbAcle\Db\DataInserter\Sql\UpdateBuilder($tableName, $identifyMap); } } return new \TestDbAcle\Db\DataInserter\Sql\InsertBuilder($tableName); }
protected function truncateDatetimeFields(\TestDbAcle\Psv\Table\Table $table, array $tableDataFromDb) { $tableName = $table->getName(); $truncateableColumns = $table->getMeta()->getTruncateDateColumns(); $filtered = array(); foreach ($tableDataFromDb as $dataRow) { $newFilteredRow = array(); foreach ($dataRow as $columnName => $value) { $isDatetime = $this->tableList->getTable($tableName)->getColumn($columnName)->isDateTime() || in_array($columnName, $truncateableColumns); if ($isDatetime && $value) { $newFilteredRow[$columnName] = date("Y-m-d", strtotime($value)); } else { $newFilteredRow[$columnName] = $value; } } $filtered[] = $newFilteredRow; } return $filtered; }
public function processTable(\TestDbAcle\Psv\Table\Table $table) { if (!$table->getMeta()->isReplaceMode() && !$table->getMeta()->isAppendMode()) { $this->pdoFacade->clearTable($table->getName()); } foreach ($table->toArray() as $valuesToBeInserted) { $this->insertValues($this->upsertBuilderFactory->getUpserter($table, $valuesToBeInserted), $valuesToBeInserted); } }
function addTable(\TestDbAcle\Psv\Table\Table $table) { return $this->tables[$table->getName()] = $table; }