Open benjavicente opened 2 years ago
Holaa! Nosotros usamos Sequelize CLI para crear los modelos, esto tambien se toca en la ayudantia 3, parece que tu usaste el generador de modelos que viene en el template pero ya no es necesario su uso debido a la existencia del CLI de Sequelize. Para tu ultima consulta, en que parte del proyecto no se utiliza camelCase? Hasta donde se siempre se usa o al menos se recomienda para seguir el mismo estilo.
Me refería a UpperCamelCase
en las clases, por ejemplo, en el caso de los álbumes con UpperCamelCase
debería cambiar
const { Model } = require('sequelize');
module.exports = (sequelize, DataTypes) => {
- class album extends Model {
+ class Album extends Model {
static associate(models) {
- this.belongsTo(models.artist);
+ this.belongsTo(models.Artist);
}
};
- album.init({
+ Album.init({
artistId: DataTypes.INTEGER,
name: DataTypes.STRING,
publishedAt: DataTypes.DATEONLY,
cover: DataTypes.STRING,
}, {
sequelize,
- modelName: 'album',
+ modelName: 'Album',
});
- return album;
+ return Album;
};
Hola 😁. Estás en toda libertad de usar PascalCase
para los modelos, si es que así lo prefieres. En lo personal prefiero camelCase
, ya que tu tabla asociada, por defecto, va a llevar el mismo nombre que el modelo y se me hace más cómodo hacer consultas a table
que a "Table"
al momento de debuggear.
Hola @benjavicente. Respecto a tu pregunta inicial, recomendamos que utilicen modelos con clases ya que, como han comentado, es lo que sequelize-cli
genera actualmente, y se aprovechan mejor las features de ES6. Por esa misma razón, es recomendable que creen sus modelos con:
yarn sequelize model:generate
yarn sequelize model:create # Equivalente al anterior
El generador del template está desactualizado. Gracias por comentarlo de hecho para tenerlo en consideración en el próximo update que le haremos.
Empecé a hacer un nuevo modelo y me di cuenta de que la manera que se estaba generando era distinta a la que tenía para el resto de los modelos, era completamente funcional (de usar funciones). Mirando el generador, eso es lo esperado:
Y lo que tenemos y lo que está en soundify utiliza clases:
¿Hay una forma de crear modelos que tengamos o recomiendan que seguir? (se que hacen lo mismo), ¿y de dónde sale / se generan los modelos con clases? Gracias de antemano 😅
Edit: aprovechó de preguntar / comentar otra cosa: ¿no sería como bueno seguir el mismo estilo de las clases para los modelos? En todas las partes que he visto del proyecto no se utiliza CamelCase y en la documentación de sequelize se utiliza ese formato.