При определении таблицы в 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 приписывать.

Другие вопросы по тегам