#javascript #node.js #sequelize.js
#javascript #node.js #sequelize.js
Вопрос:
Я пытаюсь создать модель sequelize для таблицы, в которой есть options
столбец, но я получаю сообщение об ошибке при попытке выполнить запрос (например, find, например):
/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)
И определение моей модели:
Model.recording = sequelize.define(
'recordings',
{
/* other columns... */
options: Sequelize.TEXT
},
{
timestamps: false,
freezeTableName: true
}
);
Действительно ли sequelize не допускается options
в качестве имени столбца, или я делаю что-то не так?
Ответ №1:
Ну, это довольно глупый «edgecase». Определение атрибута с именем «параметры» перезапишет параметры модели: D это отстой :(.
Проблема была только что исправлена, и исправление доступно в версии v1.1.3. Пожалуйста, дайте мне знать, если это сработает.
Комментарии:
1. Я читаю из существующей базы данных, которая уже используется в другом месте, поэтому я не могу изменить имя столбца.
2. я понимаю. попытаюсь получить некоторое время для решения этой проблемы.