Express.js搭配Sequelize-cli迁移时报SQLITE_ERROR: no such table: Animals如何解决
报错原因与解决方案
核心错误为 SQLITE_ERROR: no such table: Animals,即SQLite数据库中不存在查询所需的Animals表,同时查询操作未捕获异步错误触发了Promise拒绝警告。你可以按照以下步骤排查:
- 确认已执行迁移命令
运行npx sequelize-cli db:migrate执行迁移,仅生成迁移文件但不执行不会在数据库中创建对应表。 - 核对表名一致性
Sequelize默认会将模型名自动转为复数作为表名,如果你在模型定义中通过tableName属性手动指定了表名,需要确认迁移文件中创建的表名和该配置完全一致。 - 检查环境配置匹配
确认执行迁移时使用的环境与项目启动时使用的环境一致,不同环境通常对应独立的SQLite数据库文件,跨环境操作会导致表不存在的问题。 - 校验sequelize-cli配置
检查项目根目录的.sequelizerc文件配置,确保迁移文件、模型文件、数据库配置文件的路径配置正确,保证cli能正确读取并执行迁移。 - 补充异步异常捕获
所有涉及Sequelize的数据库操作都需要通过try/catch包裹(async/await语法)或追加.catch()回调(Promise链式调用语法),避免未处理的异常导致进程崩溃。
内容的提问来源于stack exchange,提问作者Bentz
相关产品推荐
相关产品推荐

