Fix CURRENT_TIMESTAMP not normalized to CURRENT_TIMESTAMP(3) in migrations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2026-02-20 20:56:13 +00:00
parent f58aa994ed
commit a89daf3d43

View File

@@ -474,6 +474,7 @@ class SqlQueryTransformer
* Transform datetime column types to include millisecond precision
*
* Converts: TIMESTAMP TIMESTAMP(3)
* Converts: CURRENT_TIMESTAMP CURRENT_TIMESTAMP(3)
* Converts: DATETIME DATETIME(3)
*
* This ensures datetime columns have millisecond precision from the start,
@@ -486,12 +487,20 @@ class SqlQueryTransformer
{
// TIMESTAMP without precision → TIMESTAMP(3)
// Don't match if already has precision: TIMESTAMP(3), TIMESTAMP(6)
// Don't match CURRENT_TIMESTAMP (handled separately below)
$query = preg_replace(
'/\bTIMESTAMP\b(?!\s*\()/i',
'/(?<!CURRENT_)\bTIMESTAMP\b(?!\s*\()/i',
'TIMESTAMP(3)',
$query
);
// CURRENT_TIMESTAMP without precision → CURRENT_TIMESTAMP(3)
$query = preg_replace(
'/\bCURRENT_TIMESTAMP\b(?!\s*\()/i',
'CURRENT_TIMESTAMP(3)',
$query
);
// DATETIME without precision → DATETIME(3)
// Don't match if already has precision: DATETIME(3), DATETIME(6)
$query = preg_replace(