/** * Creates an audit table for this table. */ public function createAuditTable() { $this->io->logInfo('Creating audit table <dbo>%s.%s<dbo>', $this->auditSchemaName, $this->configTable->getTableName()); // In the audit table all columns from the data table must be nullable. $dataTableColumnsDatabase = clone $this->dataTableColumnsDatabase; $dataTableColumnsDatabase->makeNullable(); $columns = TableColumnsMetadata::combine($this->auditColumns, $dataTableColumnsDatabase); AuditDataLayer::createAuditTable($this->configTable->getSchemaName(), $this->auditSchemaName, $this->configTable->getTableName(), $columns); }