Skip to content

migrations/201804041102_add_breeds.js#40

Open
davisclick wants to merge 1 commit intoadoptapanama:developfrom
davisclick:migration-razas
Open

migrations/201804041102_add_breeds.js#40
davisclick wants to merge 1 commit intoadoptapanama:developfrom
davisclick:migration-razas

Conversation

@davisclick
Copy link
Copy Markdown

Migration for bredds and bredd related with species.

Copy link
Copy Markdown
Contributor

@fdvj fdvj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Buen trabajo. Una observación sobre el código, y adicional si revisas el build de travis, falló porque no se están cumpliendo reglas de linting. Localmente puedes correr npm run coverage para ver que linting falló, o puedes ver los resultados del build en Travis.

updatedAt: Sequelize.DATE
});

await action.createTable('breed_species',{
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esta tabla no es necearia ya que no es una relación many-to-many, es decir, una raza no puede tener multiples especies, o viceversa. Por asi decirlo, la raza labrador es una raza solo de perros, no una raza de perros y gatos.

En este caso, la relación es un belongsTo, es decir, un breed belongsTo species. Y haces la relación colocando el campo specieId en la tabla de breed. Observa también que se escribe specieId y no specieID. Es importante que la d de Id este en minuscula por convención

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gracias por las observaciones, estaré ejecutando correctivos al respecto.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hola, estuve realizando correcciones y antes de subirlas me gustaría saber si por esta vía puedes validar esto:

'use strict';
const { addIndex, removeIndex } = require('../lib/helpers').fn;

module.exports = {
up: async function(action, Sequelize, db) {
await action.createTable('breeds', {
id: {
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4,
primaryKey: true,
allowNull: false
},
specieId: {
type: Sequelize.UUID,
allowNull: false
},
name: {
type: Sequelize.STRING(64),
allowNull: false
},
description: {
type: Sequelize.STRING(256),
allowNull: true
},
createdAt: Sequelize.DATE,
updatedAt: Sequelize.DATE
});

await db.query(addIndex('breeds', 'name'));

},

down: async function(action, Sequelize, db) {
await action.dropTable('breeds');
await db.query(removeIndex('breeds', 'name'));
}
};

'use strict';
const Sequelize = require('sequelize');

module.exports = function(db) {
const Breed = db.define('Breed', {
id: {
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4,
primaryKey: true,
allowNull: false
},
specieId: {
type: Sequelize.UUID,
allowNull: false
},
name: {
type: Sequelize.STRING(64),
allowNull: false
},
description: {
type: Sequelize.STRING(256),
allowNull: true
}
}, {
tableName: 'breed'
});

// Static Methods
Breed.listBreed = function() {
return this.findAll();
};

Breed.getBreed = function(id) {
return this.findOne({
where: { id }
});
};

Breed.getByName = function(name) {
return this.findOne({
where: { name }
});
};

};

module.exports.register = function({ Breed, Specie }) {
Breed.belongsTo(Specie, {as: 'species', foreignKey: 'specieId'});
};

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Me parece que no tengo que agregar specieId en la tabla breeds , ¿ Breed.belongsTo(Specie, {as: 'species', foreignKey: 'specieId'}); sería el que lo hace?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants