From 37d36daedde189cb56ae77e89b5d5404286258c6 Mon Sep 17 00:00:00 2001 From: Dima Nagorniy Date: Mon, 12 Dec 2016 11:24:14 +0200 Subject: [PATCH 1/2] AUD-76: Diff command not working. Fixed some warnings. --- src/MySql/Helper/DiffTableRowHelper.php | 30 +++++++++++++------------ 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/MySql/Helper/DiffTableRowHelper.php b/src/MySql/Helper/DiffTableRowHelper.php index e50dfcd..9355786 100755 --- a/src/MySql/Helper/DiffTableRowHelper.php +++ b/src/MySql/Helper/DiffTableRowHelper.php @@ -42,14 +42,15 @@ public static function createColumnOptionsRow($rowMetadata) { $columnProperties = $rowMetadata->getProperties(); /** @var ColumnMetadata $data */ - $data = $columnProperties['data']; + $data = isset($columnProperties['data']) ? $columnProperties['data'] : null; /** @var ColumnMetadata $audit */ - $audit = $columnProperties['audit']; + $audit = isset($columnProperties['audit']) ? $columnProperties['audit'] : null; /** @var ColumnMetadata $config */ - $config = $columnProperties['config']; - $dataMetadata = isset($columnProperties['data']) ? $data->getProperties() : null; - $auditMetadata = isset($columnProperties['audit']) ? $audit->getProperties() : null; - $configMetadata = isset($columnProperties['config']) ? $config->getProperties() : null; + $config = isset($columnProperties['config']) ? $columnProperties['config'] : null; + + $dataMetadata = isset($data) ? $data->getProperties() : null; + $auditMetadata = isset($audit) ? $audit->getProperties() : null; + $configMetadata = isset($config) ? $config->getProperties() : null; $dataCharsetName = isset($dataMetadata['character_set_name']) ? $dataMetadata['character_set_name'] : null; $dataCollationName = isset($dataMetadata['collation_name']) ? $dataMetadata['collation_name'] : null; @@ -79,14 +80,15 @@ public static function createTableRow($rowMetadata, $columnName) { $columnProperties = $rowMetadata->getProperties(); /** @var ColumnMetadata $data */ - $data = $columnProperties['data']; + $data = isset($columnProperties['data']) ? $columnProperties['data'] : null; /** @var ColumnMetadata $audit */ - $audit = $columnProperties['audit']; + $audit = isset($columnProperties['audit']) ? $columnProperties['audit'] : null; /** @var ColumnMetadata $config */ - $config = $columnProperties['config']; - $dataMetadata = isset($columnProperties['data']) ? $data->getProperties() : null; - $auditMetadata = isset($columnProperties['audit']) ? $audit->getProperties() : null; - $configMetadata = isset($columnProperties['config']) ? $config->getProperties() : null; + $config = isset($columnProperties['config']) ? $columnProperties['config'] : null; + + $dataMetadata = isset($data) ? $data->getProperties() : null; + $auditMetadata = isset($audit) ? $audit->getProperties() : null; + $configMetadata = isset($config) ? $config->getProperties() : null; return ['column_name' => $columnName, 'data' => isset($dataMetadata['column_type']) ? $dataMetadata['column_type'] : null, @@ -125,8 +127,8 @@ private static function checkOptions($rowMetadata) foreach ($rowMetadata->getProperties() as $sourceName => $metadata) { /** @var ColumnMetadata $source */ - $source = $columnProperties[$sourceName]; - $data = isset($columnProperties[$sourceName]) ? $source->getProperties() : null; + $source = isset($columnProperties[$sourceName]) ? $columnProperties[$sourceName] : null; + $data = isset($source) ? $source->getProperties() : null; if (isset($data['character_set_name']) || isset($data['collation_name'])) { return true; From c9900a250a42b2b80cf462d725407a8f6ad2b0a5 Mon Sep 17 00:00:00 2001 From: Dima Nagorniy Date: Mon, 12 Dec 2016 15:44:56 +0200 Subject: [PATCH 2/2] AUD-76 --- src/MySql/AuditDiff.php | 4 ++-- src/MySql/AuditDiffTable.php | 22 +++++++++++++++++----- src/MySql/Helper/DiffTableHelper.php | 16 ++++++++++++---- 3 files changed, 31 insertions(+), 11 deletions(-) mode change 100644 => 100755 src/MySql/Helper/DiffTableHelper.php diff --git a/src/MySql/AuditDiff.php b/src/MySql/AuditDiff.php index f92dbab..5085ebe 100755 --- a/src/MySql/AuditDiff.php +++ b/src/MySql/AuditDiff.php @@ -182,7 +182,7 @@ private function getDiff() $this->config['database']['audit_schema'], $table['table_name'], $this->config['audit_columns'], - $this->configMetadata['table_columns'][$table['table_name']]); + $this->configMetadata[$table['table_name']]); } } } @@ -218,7 +218,7 @@ private function printDiff() $columns = $diffTable->removeMatchingColumns(); } - if (!empty($columns)) + if ($columns->getNumberOfColumns()>0) { // Add an empty line between tables. if ($first) diff --git a/src/MySql/AuditDiffTable.php b/src/MySql/AuditDiffTable.php index e074afc..92ed3fa 100755 --- a/src/MySql/AuditDiffTable.php +++ b/src/MySql/AuditDiffTable.php @@ -21,6 +21,13 @@ class AuditDiffTable */ private $auditSchema; + /** + * Audit columns from config file. + * + * @var array[] + */ + private $configAuditColumns; + /** * Audit columns from config file * @@ -61,10 +68,11 @@ class AuditDiffTable */ public function __construct($dataSchema, $auditSchema, $tableName, $configAuditColumns, $configColumns) { - $this->dataSchema = $dataSchema; - $this->auditSchema = $auditSchema; - $this->tableName = $tableName; - $this->configColumns = array_merge($configAuditColumns, $configColumns); + $this->dataSchema = $dataSchema; + $this->auditSchema = $auditSchema; + $this->tableName = $tableName; + $this->configAuditColumns = $configAuditColumns; + $this->configColumns = array_merge($configAuditColumns, $configColumns); $dataColumns = new TableColumnsMetadata(AuditDataLayer::getTableColumns($this->dataSchema, $this->tableName)); $auditColumns = AuditDataLayer::getTableColumns($this->auditSchema, $this->tableName); @@ -104,13 +112,17 @@ public function removeMatchingColumns() /** @var MultiSourceColumnMetadata $config */ $config = $column->getProperty('config'); + $auditColumn = StaticDataLayer::searchInRowSet('column_name', $columnName, $this->configAuditColumns); if (!isset($data)) { if (isset($audit) && isset($config)) { if ($audit->getProperty('column_type')==$config->getProperty('column_type')) { - $metadata->removeColumn($columnName); + if (isset($auditColumn)) + { + $metadata->removeColumn($columnName); + } } } } diff --git a/src/MySql/Helper/DiffTableHelper.php b/src/MySql/Helper/DiffTableHelper.php old mode 100644 new mode 100755 index adfbb10..77b3ee1 --- a/src/MySql/Helper/DiffTableHelper.php +++ b/src/MySql/Helper/DiffTableHelper.php @@ -87,6 +87,7 @@ public function addHighlighting() $styledColumn = $column; if (is_array($column)) { + $auditColumn = StaticDataLayer::searchInRowSet('column_name', $column['column_name'], $this->auditColumns); // Highlighting for data table column types and audit. if (!empty($column['data'])) { @@ -116,6 +117,10 @@ public function addHighlighting() } else { + if (!isset($column['data']) && isset($column['audit']) && !isset($auditColumn)) + { + $styledColumn['audit'] = sprintf('%s', $styledColumn['audit']); + } // Highlighting for audit table column types and audit_columns in config file. $searchColumn = StaticDataLayer::searchInRowSet('column_name', $styledColumn['column_name'], $this->auditColumns); if (isset($searchColumn)) @@ -141,10 +146,13 @@ public function addHighlighting() { if (strcmp($styledColumn['audit'], $styledColumn['config'])) { - $styledColumns[$key - 1]['column_name'] = sprintf('%s', $styledColumns[$key - 1]['column_name']); - $styledColumn['column_name'] = sprintf('%s', $styledColumn['column_name']); - $styledColumn['audit'] = sprintf('%s', $column['audit']); - $styledColumn['config'] = sprintf('%s', $styledColumn['config']); + if (!isset($column['column_name'])) + { + $styledColumns[$key - 1]['column_name'] = sprintf('%s', $styledColumns[$key - 1]['column_name']); + } + $styledColumn['column_name'] = sprintf('%s', $styledColumn['column_name']); + $styledColumn['audit'] = sprintf('%s', $column['audit']); + $styledColumn['config'] = sprintf('%s', $styledColumn['config']); } } }