Estoy teniendo un gran problema con Sequelize tratando de darme su mejor estimación de cuál cree que es el nombre de mi tabla.
tengo 3 mesas Propiedades, medios y una tabla de unión PropertyMedia
Por alguna razón, cuando hago una consulta de unión con la secuencia, me da el error.
error: column Properties->PropertyMedia.medium_id does not exist
He hecho una búsqueda global para asegurarme de que no tengo la palabra medio en ninguna parte y no
let Media = sequelize.define('Media', { url: DataTypes.STRING, isVideo: DataTypes.BOOLEAN }, { freezeTableName: true, tableName: 'media' }); let PropertyMedia = sequelize.define('PropertyMedia', { propertyId: DataTypes.INTEGER, mediaId: DataTypes.INTEGER }, { freezeTableName: true, tableName: 'property_media' });No se pluraliza a "medio", se singulariza a "medio".
Esto se debe a que "media" es el plural de "medium" y, de forma predeterminada, los nombres de las tablas usan el plural y las referencias usan el singular, al igual que tendrías user_id (singular) users de referencia (plural), así que aquí medium_id (no media_id ) se espera que haga referencia a los media .
Es cierto que hoy en día en inglés surgió otro sustantivo (generalmente) incontable "media" (probablemente 1 porque la gente olvidó que sí se origina de la palabra latina medium en plural), pero ese es un caso especial que Sequelize no conoce, realmente , y tampoco pudo discernir a cuál de los dos sustantivos te referías.
Por esta razón, Sequelize tiene formas de anular las formas singular/plural .
1 : No soy etimólogo, así que tómalo con pinzas.