使用Sequelize创建迁移仅返回执行选项无法生成文件如何解决?
解决方案
- 确认执行前缀匹配安装方式
如果你是把sequelize-cli安装在项目本地开发依赖(未加-g全局安装参数),直接执行sequelize命令会调用全局版本,全局和本地版本不兼容就会出现仅返回选项列表的问题。局部安装的正确执行方式需要加npx前缀,标准命令如下:npx sequelize-cli migration:generate --name create-alunos
如果你是全局安装的sequelize-cli,执行命令为:sequelize migration:generate --name create-alunos - 确认命令格式符合版本要求
目前v6及以上版本的sequelize-cli统一使用migration:generate作为迁移文件生成的一级命令,后面必须携带--name参数指定迁移文件名,不需要给参数值加引号、也不要用等号连接参数名和参数值,这是绝大多数同类问题的根因。 - 检查版本兼容性
执行以下命令查看两个依赖的版本匹配度:npx sequelize-cli --versionnpm list sequelize
要求sequelize和sequelize-cli的大版本保持一致,比如sequelize为v6版本时,sequelize-cli也需要使用v6版本,版本不匹配时执行以下命令重装对应版本即可:npm install --save-dev sequelize-cli@6 - 检查项目配置文件
确认项目根目录存在.sequelizerc配置文件,该文件用于指定sequelize-cli读取配置、存放迁移/模型/种子文件的路径,缺失该文件也会导致命令执行异常。基础配置参考如下:
配置完成后确保配置中指定的所有目录都已创建,再重新执行迁移生成命令即可。const path = require('path'); module.exports = { 'config': path.resolve('config', 'config.json'), 'models-path': path.resolve('models'), 'seeders-path': path.resolve('seeders'), 'migrations-path': path.resolve('migrations') }
内容的提问来源于stack exchange,提问作者Marco Aurélio Lopes Júnior
相关产品推荐
相关产品推荐

