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:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user