Skip to content

Commit ed4fe85

Browse files
authored
Fixed allow DEFAULT_VALUE_CURRENT_TIMESTAMP for datetime column in psql (#299)
1 parent 2a5f2d8 commit ed4fe85

File tree

5 files changed

+11
-6
lines changed

5 files changed

+11
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
### Fixed
66
- decimal, float, double default values
7+
- allow DEFAULT_VALUE_CURRENT_TIMESTAMP for datetime column in psql
78

89
## [2.6.0] - 2024-07-19
910
### Added

src/Database/QueryBuilder/MysqlQueryBuilder.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,10 @@ private function createColumnDefault(Column $column): string
253253
if (in_array($column->getType(), [Column::TYPE_BOOLEAN], true)) {
254254
return $default . intval($column->getSettings()->getDefault());
255255
}
256-
if (($column->getType() === Column::TYPE_TIMESTAMP || $column->getType() === Column::TYPE_DATETIME) && $column->getSettings()->getDefault() === ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP) {
256+
if (in_array($column->getType(), [
257+
Column::TYPE_TIMESTAMP,
258+
Column::TYPE_DATETIME
259+
], true) && $column->getSettings()->getDefault() === ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP) {
257260
if ($column->getSettings()->allowNull()) {
258261
$default = ' NULL' . $default;
259262
}

src/Database/QueryBuilder/PgsqlQueryBuilder.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,10 @@ private function escapeDefault(Column $column): string
245245
$default = (string)$column->getSettings()->getDefault();
246246
} elseif (in_array($column->getType(), [Column::TYPE_BOOLEAN], true)) {
247247
$default = $column->getSettings()->getDefault() ? 'true' : 'false';
248-
} elseif ($column->getType() === Column::TYPE_TIMESTAMP && $column->getSettings()->getDefault() === ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP) {
248+
} elseif (in_array($column->getType(), [
249+
Column::TYPE_TIMESTAMP,
250+
Column::TYPE_DATETIME
251+
], true) && $column->getSettings()->getDefault() === ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP) {
249252
$default = 'CURRENT_TIMESTAMP';
250253
} else {
251254
$default = "'" . $this->sanitizeSingleQuote($column->getSettings()->getDefault()) . "'";

testing_migrations/phoenix/20150529123120_init.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ protected function up(): void
7878
->addColumn('col_double', 'double', ['length' => 10, 'decimals' => 3])
7979
->addColumn('col_boolean', 'boolean')
8080
->addColumn('col_bit', 'bit', ['length' => 5, 'default' => "B'10101'"])
81-
->addColumn('col_datetime', 'datetime')
81+
->addColumn('col_datetime', 'datetime', ['default' => ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP])
8282
->addColumn('col_date', 'date')
8383
->addColumn('col_enum', 'enum', ['values' => ['xxx', 'yyy', 'zzz'], 'null' => true])
8484
->addColumn('col_set', 'set', ['values' => ['xxx', 'yyy', 'zzz'], 'null' => true])
@@ -87,7 +87,7 @@ protected function up(): void
8787
->addColumn('col_line', 'line', ['null' => true])
8888
->addColumn('col_polygon', 'polygon', ['null' => true])
8989
->addColumn('col_time', 'time', ['null' => true])
90-
->addColumn('col_timestamp', 'timestamp', ['null' => true, 'default' => ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP])
90+
->addColumn('col_timestamp', 'timestamp', ['default' => ColumnSettings::DEFAULT_VALUE_CURRENT_TIMESTAMP])
9191
->addIndex([new IndexColumn('col_string', ['order' => 'DESC']), new IndexColumn('col_integer', ['order' => 'DESC'])])
9292
->addForeignKey('col_smallinteger', 'table_5', 'id', ForeignKey::CASCADE, ForeignKey::CASCADE)
9393
->create();

testing_migrations/phoenix/20150908065215_add_data.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,8 @@ public function up(): void
136136
'col_double' => 3.1415,
137137
'col_decimal' => 3.1415,
138138
'col_numeric' => 3.1415,
139-
'col_datetime' => new DateTime(),
140139
'col_date' => (new DateTime())->format('Y-m-d'),
141140
'col_time' => '20:30:40',
142-
'col_timestamp' => null,
143141
'col_year' => 2021,
144142
]);
145143
}

0 commit comments

Comments
 (0)