definitionAggregator = $definitionAggregator; $this->dbSchemaWriter = $dbSchemaWriter; } /** * {@inheritdoc} */ public function getOperationName() { return self::OPERATION_NAME; } /** * {@inheritdoc} */ public function isOperationDestructive() { return false; } /** * {@inheritdoc} */ public function doOperation(ElementHistory $elementHistory) { /** * @var TableElementInterface | ElementInterface $element */ $element = $elementHistory->getNew(); $definition = $this->definitionAggregator->toDefinition($element); $statement = $this->dbSchemaWriter->addElement( $element->getName(), $element->getTable()->getResource(), $element->getTable()->getName(), $definition, $element->getType() ); return [$statement]; } }