Skip to content

Commit 752c342

Browse files
authored
Merge pull request #5852 from Laravel-Backpack/fix-column-default-for-mariadb
Fix column default for mariadb
2 parents d89ce8b + 4bccbc5 commit 752c342

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/app/Library/Database/DatabaseSchema.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ private static function mapTable(string $connection, string $tableName)
9595
return $index['columns'];
9696
}, $indexes);
9797

98-
$table = new Table($tableName, $table);
98+
$table = new Table($tableName, $table, $schemaManager);
9999

100100
$indexes = Arr::flatten($indexes);
101101
$table->setIndexes(array_unique($indexes));

src/app/Library/Database/Table.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ final class Table
88
private array $columns = [];
99
private array $indexes = [];
1010

11-
public function __construct(string $name, array $columns = [])
11+
public function __construct(string $name, array $columns = [], $schemaManager = null)
1212
{
1313
$this->name = $name;
1414
foreach ($columns as $column) {
15-
$this->columns[$column['name']] = new class($column)
15+
$this->columns[$column['name']] = new class($column, $schemaManager)
1616
{
17-
public function __construct(private array $column)
17+
public function __construct(private array $column, private $schemaManager)
1818
{
1919
}
2020

@@ -30,7 +30,11 @@ public function getNotnull()
3030

3131
public function getDefault()
3232
{
33-
return $this->column['default'];
33+
return isset($this->schemaManager) && class_exists(\Illuminate\Database\MariaDbConnection::class) ?
34+
(is_a($this->schemaManager->getConnection(), \Illuminate\Database\MariaDbConnection::class) &&
35+
is_string($this->column['default']) &&
36+
$this->column['nullable'] === true &&
37+
($this->column['default'] === 'null' || $this->column['default'] === 'NULL') ? null : $this->column['default']) : $this->column['default'];
3438
}
3539

3640
public function getUnsigned()

0 commit comments

Comments
 (0)