nom de la colonne Sequelize / collision de propriété?
-
27-10-2019 - |
Question
Je suis en train de créer un modèle de sequelize pour une table qui a une colonne de options
, mais je reçois une erreur lorsque je tente une requête (comme find, par exemple):
/Users/camupod/node_modules/sequelize/lib/sequelize/model.js:17
var defaults = this.options.hasPrimaryKeys ? {} : { id: null }
^
TypeError: Cannot read property 'hasPrimaryKeys' of null
at new <anonymous> (/Users/camupod/node_modules/sequelize/lib/sequelize/model.js:17:30)
at [object Object].build (/Users/camupod/node_modules/sequelize/lib/sequelize/model-definition.js:140:18)
at /Users/camupod/node_modules/sequelize/lib/sequelize/query.js:47:64
at Array.map (native)
at [object Object].onSuccess (/Users/camupod/node_modules/sequelize/lib/sequelize/query.js:47:22)
at /Users/camupod/node_modules/sequelize/lib/sequelize/query.js:22:38
at Query.<anonymous> (/Users/camupod/node_modules/mysql/lib/client.js:108:11)
at Query.emit (events.js:61:17)
at Query._handlePacket (/Users/camupod/node_modules/mysql/lib/query.js:51:14)
at Client._handlePacket (/Users/camupod/node_modules/mysql/lib/client.js:312:14)
Et la définition de mon modèle:
Model.recording = sequelize.define(
'recordings',
{
/* other columns... */
options: Sequelize.TEXT
},
{
timestamps: false,
freezeTableName: true
}
);
ne sequelize vraiment pas laisser options
comme nom de colonne, ou que je fais quelque chose de mal?
La solution
Eh bien, c'est une assez stupide « EdgeCase ». Définition d'un attribut appelé « options » écrase les options du modèle: D qui aspire:. (
La question était juste fixe et le bugfix est disponible en v1.1.3. S'il vous plaît laissez-moi savoir si cela fonctionne.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow