Repository navigation
Osumi Framework 9.12.1
Esta versión añade soporte para CURRENT_TIMESTAMP como valor por defecto dinámico de campos DATETIME en el ORM.
CURRENT_TIMESTAMP
Ahora puede definirse un campo DATETIME así:
#[OField(
type: OField::DATETIME,
nullable: false,
default: OField::CURRENT_TIMESTAMP
)]
public ?string $joined_at = null;Al generar el esquema SQL, se conserva correctamente como:
`joined_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMPEn runtime, el ORM resuelve OField::CURRENT_TIMESTAMP al timestamp actual en formato Y-m-d H:i:s cuando aplica los valores por defecto de un nuevo modelo.
generateModelFromDB
generateModelFromDB reconoce ahora las dos representaciones habituales de MariaDB:
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP()
Ambas se generan en el modelo como:
default: OField::CURRENT_TIMESTAMPEsto permite importar correctamente esquemas reales que utilicen DEFAULT CURRENT_TIMESTAMP en columnas DATETIME.
Validación estricta
OField::CURRENT_TIMESTAMP solo puede utilizarse con campos OField::DATETIME.
Además, se diferencia expresamente del string literal:
'CURRENT_TIMESTAMP'por lo que un valor textual con ese contenido no se interpreta como una expresión SQL.
Las demás expresiones SQL dinámicas no soportadas, como UUID(), continúan rechazándose explícitamente.
Migración
Esta versión no añade un nuevo paso automático de migración.
Los proyectos que ya utilizan 9.12.0 pueden actualizar directamente mediante Composer:
composer update osumionline/framework --with-dependenciesDespués de actualizar puede volver a ejecutarse:
php of generateModelFromDB