From 8c11cbc1360991f969c0b24474f876667369d2b4 Mon Sep 17 00:00:00 2001 From: mobbexLuis Date: Thu, 26 Sep 2024 11:00:52 -0300 Subject: [PATCH 1/2] added a method to validate column value (related to MySQL 8.x values) --- src/Model/Table.php | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/Model/Table.php b/src/Model/Table.php index a84f877..932982d 100644 --- a/src/Model/Table.php +++ b/src/Model/Table.php @@ -160,15 +160,14 @@ public function getColumn($name) public function getColumns() { $columns = $this->db->query("SHOW COLUMNS FROM $this->table;") ?: []; - + error_log('definition: ' . "\n" . json_encode($this->definition, JSON_PRETTY_PRINT) . "\n", 3, 'log.log'); // Sort current db colums by keys (do not use array_walk) - foreach ($columns as &$column) { + foreach ($columns as &$column){ ksort($column); - - if ($column['Default'] === 'CURRENT_TIMESTAMP') - $column['Default'] = 'current_timestamp()'; + $column = $this->validateValue($column); } - + + error_log('columns: ' . "\n" . json_encode($columns, JSON_PRETTY_PRINT) . "\n", 3, 'log.log'); return $columns ?: []; } @@ -277,4 +276,25 @@ public function changeCharset() ($column['Null'] == 'NO' ? 'NOT NULL;' : ';') ); } + + /** + * Validates the value of a column. + * + * @param array $column Column definition array. + * + * @return array The normalized column definition. + */ + public function validateValue($column){ + + if ($column['Default'] === 'CURRENT_TIMESTAMP') + $column['Default'] = 'current_timestamp()'; + + if ($column['Extra'] === 'DEFAULT_GENERATED') + $column['Extra'] = ''; + + if ($column['Type'] === 'int') + $column['Type'] = 'int(11)'; + + return $column; + } } \ No newline at end of file From b1736a89167f7fbc222f5254f7d7389885d01fe5 Mon Sep 17 00:00:00 2001 From: mobbexLuis Date: Thu, 17 Oct 2024 09:51:49 -0300 Subject: [PATCH 2/2] removed logs --- src/Model/Table.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Model/Table.php b/src/Model/Table.php index 932982d..65882b9 100644 --- a/src/Model/Table.php +++ b/src/Model/Table.php @@ -160,14 +160,12 @@ public function getColumn($name) public function getColumns() { $columns = $this->db->query("SHOW COLUMNS FROM $this->table;") ?: []; - error_log('definition: ' . "\n" . json_encode($this->definition, JSON_PRETTY_PRINT) . "\n", 3, 'log.log'); // Sort current db colums by keys (do not use array_walk) foreach ($columns as &$column){ ksort($column); $column = $this->validateValue($column); } - error_log('columns: ' . "\n" . json_encode($columns, JSON_PRETTY_PRINT) . "\n", 3, 'log.log'); return $columns ?: []; }