VARCHAR o ENUM en las migraciones de Laravel

arrow_back Blog

La meta de esta entrada es ofrecerte mi  punto de vista para que tomes la decisión correcta cuando desees trabajar con migraciones en Laravel y desees ocupar columnas con valores predeterminados.

Problemas con los Enum en las migraciones de Laravel

El principal problema y motivo de esta entrada viene al querer actualizar este tipo de columnas con nuevos valores, algo muy normal en cualquier proyecto. Imagina que inicias tu proyecto con una migración y un Enum para usuarios que luce de la siguiente forma:

Hasta ahí bien, pero ahora imagina que necesitas actualizar ese Enum para añadir nuevos valores, por ejemplo un nuevo rol Customer, no es posible, deberías eliminar esa columna y volver a crearla, con los problemas que ello puede conllevar.

Solución

Mi recomendación es que para los casos más flexibles, en lugar de utilizar columnas de tipo Enum, hagas uso de Varchar. Lo único que debes hacer para asegurarte que esa columna sólo acepta los datos que a ti te interesan es hacer uso de las validaciones de Laravel de la siguiente forma.

De esta forma tan sencilla, si a partir de ahora necesitamos añadir un nuevo tipo de usuario a nuestro sistema, nuestra base de datos no será un problema, simplemente deberemos actualizar el Enum UserType y añadir ahí los valores que deseamos permitir.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2022 © Todos los derechos reservados.

Contacto