From 4a491c402888c783734460b9e7347da55652f745 Mon Sep 17 00:00:00 2001 From: Rizqy H Date: Tue, 21 Oct 2025 09:24:13 +0700 Subject: [PATCH 1/4] adjust codes for doctrine/dbal 3.x --- src/Illuminate/Database/MySqlConnection.php | 4 ++-- src/Illuminate/Database/PostgresConnection.php | 4 ++-- src/Illuminate/Database/SQLiteConnection.php | 4 ++-- src/Illuminate/Database/SqlServerConnection.php | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Illuminate/Database/MySqlConnection.php b/src/Illuminate/Database/MySqlConnection.php index ac1e9d111..42b734717 100755 --- a/src/Illuminate/Database/MySqlConnection.php +++ b/src/Illuminate/Database/MySqlConnection.php @@ -1,7 +1,7 @@ Date: Tue, 21 Oct 2025 09:40:47 +0700 Subject: [PATCH 2/4] fix doctrine schema manager getter --- src/Illuminate/Database/Connection.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Connection.php b/src/Illuminate/Database/Connection.php index 7eec414eb..b99bf13a3 100755 --- a/src/Illuminate/Database/Connection.php +++ b/src/Illuminate/Database/Connection.php @@ -822,7 +822,13 @@ public function getDoctrineColumn($table, $column) */ public function getDoctrineSchemaManager() { - return $this->getDoctrineDriver()->getSchemaManager($this->getDoctrineConnection()); + $connection = $this->getDoctrineConnection(); + + // Doctrine v2 expects one parameter while v3 expects two. 2nd will be ignored on v2... + return $this->getDoctrineDriver()->getSchemaManager( + $connection, + $connection->getDatabasePlatform() + ); } /** From b2a5cd8e0d522edf099ae8a7fbea7046f4fab317 Mon Sep 17 00:00:00 2001 From: Rizqy H Date: Tue, 21 Oct 2025 09:46:58 +0700 Subject: [PATCH 3/4] fix doctrine connection factory see: https://github.com/doctrine/dbal/pull/3548 --- src/Illuminate/Database/Connection.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Database/Connection.php b/src/Illuminate/Database/Connection.php index b99bf13a3..8116eb9da 100755 --- a/src/Illuminate/Database/Connection.php +++ b/src/Illuminate/Database/Connection.php @@ -840,9 +840,14 @@ public function getDoctrineConnection() { $driver = $this->getDoctrineDriver(); - $data = array('pdo' => $this->pdo, 'dbname' => $this->getConfig('database')); - - return new DoctrineConnection($data, $driver); + return new DoctrineConnection([ + 'host' => $this->getConfig('host'), + 'port' => $this->getConfig('port'), + 'user' => $this->getConfig('username'), + 'password' => $this->getConfig('password'), + 'dbname' => $this->getDatabaseName(), + 'charset' => $this->getConfig('charset'), + ], $driver); } /** From bdeae415ccbfe6f669ff206105f7706a70e1210a Mon Sep 17 00:00:00 2001 From: Rizqy H Date: Tue, 21 Oct 2025 11:16:45 +0700 Subject: [PATCH 4/4] fix renaming column in migration see: https://github.com/laravel/framework/pull/34884 --- .../Database/Schema/Grammars/Grammar.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Database/Schema/Grammars/Grammar.php b/src/Illuminate/Database/Schema/Grammars/Grammar.php index 1cda678ad..4cf69c110 100755 --- a/src/Illuminate/Database/Schema/Grammars/Grammar.php +++ b/src/Illuminate/Database/Schema/Grammars/Grammar.php @@ -63,13 +63,22 @@ protected function getRenamedDiff(Blueprint $blueprint, Fluent $command, Column */ protected function setRenamedColumns(TableDiff $tableDiff, Fluent $command, Column $column) { - $newColumn = new Column($command->to, $column->getType(), $column->toArray()); - - $tableDiff->renamedColumns = array($command->from => $newColumn); + $tableDiff->renamedColumns = array( + $command->from => new Column($command->to, $column->getType(), self::getWritableColumnOptions($column)) + ); return $tableDiff; } + private static function getWritableColumnOptions(Column $column): array + { + return array_filter( + $column->toArray(), + fn (string $name) => method_exists($column, 'set'.$name), + ARRAY_FILTER_USE_KEY + ); + } + /** * Compile a foreign key command. *