请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

migration:generate 报错 “f 不是内部或外部命令,也不是可运行的程序 或批处理文件”

学习《12-11 创建菜单及数据对接:数据库migrations相关(非常重要)》这一课程,
1.输入:npm run migration:generate menus
2.报错: f() { npm run typeorm migration:generate -p “./src/migration/$@”; }; f menus
’f’ 不是内部或外部命令,也不是可运行的程序
或批处理文件
请问,为啥会出现该现象。谢谢 大佬

正在回答 回答被采纳积分+3

2回答

Brian 2023-08-05 14:54:52

https://img1.sycdn.imooc.com//szimg/64cdf0b4091c8e7722240740.jpg

为了windows同学,创建了一个脚本,代码已经更新到nestjs项目:https://git.imooc.com/coding-617/nestjs-lesson/commit/68881ace5f632da35dd9671c24194c5a7c3d372e?style=split


使用migration:create 目录+名称 这种方案来初次创建migration

使用migration:generate:win 名称 来创建创建migration

0 回复 有任何疑惑可以回复我~
Brian 2023-04-21 22:52:20

这个有同学也是遇到了相同的问题,可以考虑

  1. npm run typeorm migration:generate -p \"./src/migrations/$@"

把后面的$@ 替换成你的目录

0 回复 有任何疑惑可以回复我~
  • 提问者 晚上早早睡 #1
    一、	配置环境:
    Windows 11 家庭中文版 64位
    Vscode版本:v1.70 july 2022
    Mysql: mysql-8.0.28-winx64
    typeorm: 0.3.7
    终端:cmd
    
    二、	现象描述:
    将npm run typeorm migration:generate -p \"./src/migrations/$@" 中的$@替换为test-migrations后,仍然没有生成迁移。
    
    三、	报错信息:
    nestjs-demo@0.0.1 migration:generate
    > f() { npm run typeorm migration:generate -p "./src/migrations/test-migrations"; }; f menus
    
    'f' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    截图如下:
     
    
    三、期望解答:
    1.  $@ 替换成自己的目录后,终端中运行命令 npm run migration:generate menus为啥不行哦?
    2. 出现该情况,会是typeorm版本的问题,还是配置上的问题?
    3. 教学视频上输入npm run migration:generate menus命令后,程序返回
    > f() { npm run typeorm migration:generate -p "./src/migrations/test-migrations"; }; f “menus”
          自己演示时,输入上述命令后,程序返回
    > f() { npm run typeorm migration:generate -p "./src/migrations/test-migrations"; }; f menus
       对比后发现,menus上了引号。
       请问这是为啥,还希望老师解答下哈?
     
    
    四、更多期待:
    
    实践中发现Nestjs项目,使用typeorm来做数据迁移稍显繁琐,是否还有更好的nest框架下的迁移方案,若没有,还希望能够将typeorm迁移这部分学习得更深入全面些。
    回复 有任何疑惑可以回复我~ 2023-04-23 11:28:36
  • Brian 回复 提问者 晚上早早睡 #2
    厉害了 小伙伴,我看到的最详细的提问回复。
    
    针对问题1:
    参考一下这个回答:https://coding.imooc.com/learn/questiondetail/287242.html
    
    针对问题2:
    命令问题。
    
    针对问题3:
    Linux系统与Windows上的差异
    
    typeorm来做数据迁移稍显繁琐,是否还有更好的nest框架下的迁移方案——这个有很多,比较简单的方法,是直接使用navicat sync这类工具进行小体量的迁移,如果是大体量的就有一些专业的工具,比如:阿里云的DTS,还有其他云平台,也有类似的工具。
    回复 有任何疑惑可以回复我~ 2023-05-09 10:39:28
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信