TypeORM执行migration:generate报错:缺少必填参数dataSource
TypeORM migration:generate 报错"Missing required argument: dataSource"解决方法
1. 脚本缺少数据源参数
你的migrate和migration:revert脚本都通过-d ./datasource.ts指定了数据源文件,但migration:generate脚本没加这个必要参数,TypeORM CLI无法定位数据源配置,因此触发报错。修改后的脚本如下:
"migration:generate": "ts-node node_modules/typeorm/cli.js migration:generate ./libs/database/migrations/$npm_config_name -d ./datasource.ts"
2. 修正datasource.ts的实体路径
你的datasource.ts中实体路径拼接存在问题:__dirname返回当前文件所在的根目录,直接拼接libs/...会生成类似/rootlibs/database/...的无效路径,导致TypeORM找不到实体文件。需要补充斜杠修正路径:
entities: [__dirname + '/libs/database/entities/*.entity{.ts,.js}'], migrations: [__dirname + '/libs/database/migrations/*{.ts,.js}'],
也可以用path.join避免路径拼接错误,更可靠:
import { join } from 'path'; // ... entities: [join(__dirname, 'libs', 'database', 'entities', '*.entity{.ts,.js}')], migrations: [join(__dirname, 'libs', 'database', 'migrations', '*{.ts,.js}')],
3. 正确执行生成命令
运行迁移生成命令时,需要通过--name传递迁移名称,格式如下:
npm run migration:generate --name=YourMigrationName
内容的提问来源于stack exchange,提问作者jeyremd
相关产品推荐
相关产品推荐

