IIC2513 / Syllabus-S1-2024-1

Sección 1 - Antonio Ossa
39 stars 1 forks source link

[T3] problema belongs_to #191

Open solebravo opened 4 months ago

solebravo commented 4 months ago

hice el cambio de la FK, con una nueva DB y todo, luego la cree y migré, pero al momento de hacer las seeds, me tira el siguiente error a5

y de verdad ya no entiendo porque, ya que en el modelo entry si lo defini a4

image

solebravo commented 4 months ago

@Chumi-sun , disculpa por etiquetarte, pero cache que acababas de responder un issue y queria saber si me podias ayudar

Chumi-Colores commented 4 months ago

Viendo tu código todo parece estar correcto. Ya hiciste las migraciones antes de correr las seeds cierto? Es importante no solo correr las migraciones antes, si no también hacerlas en el orden correcto. Primero User y luego Entry. Una forma rápida de cambiar el orden de las migraciones es solamente cambiar el nombre de sus archivos, para que User quede antes alfabéticamente.

solebravo commented 4 months ago

@Chumi-sun mmm hice yarn sequelize-cli db:migrate, deberia hacer la como migrate user, seed user y luego las de las entry?

Chumi-Colores commented 4 months ago

Con hacer yarn sequelize-cli db:migrate y luego correr las seeds está correcto. Siempre que en la migración hayas seguido el orden correcto y se hayan creado bien las tablas en la db. Revisa en psql si este es el caso.

solebravo commented 4 months ago

@Chumi-sun me puse a revisar los archivos y las migraciones de entry se ven, asi, osea no se hizo el belongs_to, como podia volver a hacerlo? image

Chumi-Colores commented 4 months ago

Tendrás que borrar la tabla o editarla. Como es algo chico y no importa la información almacenada es mucho más sencillo solo borrarla. Lo que hago yo es meterme a psql y hago DROP TABLES. Pero una solución más elegante es usar el siguiente comando: yarn sequelize-cli db:migrate:undo. Luego solo hace falta que edites el valor de belongsTo a belongs_to en ese archivo que acabas de mandar (y en cualquier otro en que diga belongsTo, pero creo que ese es el único que debería haber)

Luego solo vuelve a correr las migraciones y dime cómo te fue

solebravo commented 4 months ago

@Chumi-sun nose pq al hacer DROP TABLE me aparece este error, como que no existiera la tabla, pero literal esta arriba, igual puede que este siendo pava image

Chumi-Colores commented 4 months ago

Tienes que escribir "Entries" (con mayúscula y con esas comillas)

vjimenezs commented 4 months ago

Hola! El problema es la manera en que estás asociando la foreignKey. Para el modelo de Entry está hecho de manera correcta, pero para el modelo de User, cuando asocias con hasMany, tú le tienes que decir el atributo que vas a entregar como foreignKey (que es la primary key de la entidad User). Cuéntame si esto arregla tu problema!

vjimenezs commented 4 months ago

También atención que para la migración que compartes, para belongs_to debes mencionar a qué está referenciando, esto se debería ver algo así:

belongs_to: {
  type: Sequelize.STRING,
  references: { model: <Modelo>, key: <Llave> }
}
vjimenezs commented 4 months ago

Y para hacer un drop a las tablas, sequelize-cli tiene la opción

sequelize-cli db:drop                           Drop database specified by configuration

Esto eliminará todas las tablas, asegúrate de poder volver a crearlas con tus migraciones, y ten a mano el comando yarn sequelize-cli db:create