Tengo un modelo llamado Usuario pero Sequelize busca la tabla USUARIOS cada vez que intento guardar en la base de datos. ¿Alguien sabe cómo configurar Sequelize para usar nombres de tablas en singular? Gracias.
109
Tengo un modelo llamado Usuario pero Sequelize busca la tabla USUARIOS cada vez que intento guardar en la base de datos. ¿Alguien sabe cómo configurar Sequelize para usar nombres de tablas en singular? Gracias.
user
es una palabra reservada, tendrás muchos problemas si realmente intentas crear una tabla con ese nombre.user
no es una palabra reservada, sino una palabra clave. Si bien no encontrará ningún problema al usarlo, es bueno evitarlo. dev.mysql.com/doc/refman/5.5/en/keywords.htmlRespuestas:
Los documentos indican que puede usar la propiedad
freezeTableName
.Por favor, mire este ejemplo:
fuente
freezeTableName: true
no funciona en la última versión de sequelize. ¿Alguna otra solución?freezeTableName
es que también evita que sqlz ponga en minúsculas los nombres de tablas y columnas. Lo que significa que más adelante, cuando esté escribiendo SQL a mano para explorar datos, tendrá que lidiar con nombres de mayúsculas y minúsculas (lo que sea que eso signifique para su dialecto). En la página, significa tener que usar comillas dobles alrededor de cada nombre de mayúsculas y minúsculas, ¡puaj! Ojalá pudiéramos optar por no participar en la pluralización pero mantener el plegado de mayúsculas y minúsculas ...define
tiene latableName
opción de anulación explícita.freezeTableName: true
además demodelName: 'singularName'
Si bien la respuesta aceptada es correcta, puede hacer esto una vez para todas las tablas en lugar de tener que hacerlo por separado para cada una. Simplemente pasa un objeto de opciones similar al constructor Sequelize, así:
Ahora, cuando defina sus entidades, no tiene que especificar
freezeTableName: true
:fuente
Si necesita tener diferentes nombres de modelo para las definiciones singuar y plural, puede pasar el nombre como parámetro en las opciones del modelo.
Por favor, mire este ejemplo:
esto devolverá "persona" como un objeto cuando se consulta un solo registro y "personas" como una matriz cuando buscamos varios registros.
fuente