При определении таблицы в SequelizeJs ее имя изменяется при выполнении
При определении таблицы в SequelizeJ ее имя изменяется при выполнении, что приводит к ER_NO_SUCH_TABLE.
Это мой код:
var API_TOKEN=database.sequelize.define('API_TOKENS',{
user_id:{
type:Sequelize.INTEGER,
},
token:{
type:Sequelize.STRING
}
});
и ошибка:
Необработанный отказ SequelizeDatabaseError: ER_NO_SUCH_TABLE: таблица 'tableName.API_TOKENs' не существует
Примечание: обратите внимание, как имя таблицы изменяется при выполнении, я использую базу данных MySQL.
1 ответ
Вы можете использовать один из двух доступных вариантов, которые можно поместить в options
из sequelize.define
метод
freezeTableName
tableName
Согласно документации sequelize (относительно того, как она называет таблицу базы данных на основе определения модели)
По умолчанию sequelize автоматически преобразует все переданные имена моделей (первый параметр define) во множественное число.
Используя freezeTableName
таблица базы данных будет названа точно так же, как и название вашей модели. С другой стороны, если вы хотите полностью персонализированное имя таблицы, вы должны использовать tableName
приписывать.