> Faqs > Error en migración table users Laravel Invalid default value for 'created_at'

Error en migración table users Laravel Invalid default value for 'created_at'

Estoy intentando hacer una migración en la tabla de usuarios de Laravel (tabla "users"). Intento crear el campo "email_verified_at" en la tabla de usuarios mediante una migración porque estoy intentando actualizar un proyecto de Laravel antiguo.

Pero al ejecutar la migración me sale un error con el valor predeterminado del campo 'created_at':

Syntax error or access violation: 1067 Invalid default value for 'created_at' (SQL: alter table `users` add `email_verified_at` timestamp null)

¿Qué puedo hacer para solucionarlo?

Como información extra:

  • El valor predeterminado que tiene este campo "created_at" en la base de datos actualmente es: 0000-00-00 00:00:00
  • El campo no permite null como valor.
Puedes actualizar la pregunta y colocar los valores predeterminados que tienen actualmente los campos que te dan problemas?

Respuestas

Claramente estás teniendo un error con el valor predeterminado del campo created_at. Quizás se debe a que estás trayendo problemas al heredar un modelo de base de datos creado para una versión antigua del framework.

Mi sugerencia es que mires cómo ese campo debería de estar en una instalación actual de Laravel, creada desde cero y que lo actualices en tu sistema gestor de base de datos, para dejarlo como debería estar. Claramente, el valor predeterminado actual en esas columnas de la base de datos no es correcto.

En realidad el valor predeterminado para estos campos timestamps de Laravel es NULL y por supuesto el campo debe ser nullable. Seguramente el mismo problema lo tienes con el campo updated_at.

Miguel Angel
3310 147 216 17
Siguiendo tus indicaciones lo he podido resolver. Modifiqué los valores de la tabla de usuarios y todo funcionó correctamente.