当我 运行 迁移命令时,TypeORM CLI 不打印任何输出
TypeORM CLI doesn't print any output when I run migration commands
我创建了一个基于 TypeORM 的项目,仅用于 运行ning 迁移脚本;我正在使用 TypeORM CLI 对它们进行 run
、show
或 revert
,但执行时没有得到任何输出。
我得到输出的唯一情况是 运行 typeorm migration:create
或 npm run migration:create
,但在其他情况下,输出与以下相同:
这是我的 package.json
的内容,以便您可以看到我正在使用的 scripts
和依赖项:
{
"name": "bgt-data-import",
"version": "0.0.1",
"description": "BGT Data Import",
"devDependencies": {
"ts-node": "^8.10.2",
"@types/node": "^9.6.5",
"typescript": "^3.9.6"
},
"dependencies": {
"aws-sdk": "^2.709.0",
"axios": "^0.19.2",
"dotenv": "^8.2.0",
"npm": "^6.14.5",
"pg": "^7.3.0",
"reflect-metadata": "^0.1.10",
"typeorm": "0.2.25"
},
"scripts": {
"start": "ts-node src/index.ts",
"typeorm": "node -r ts-node/register ./node_modules/typeorm/cli.js",
"migration:generate": "npm run typeorm migration:generate --config ./ormconfig.json --name",
"migration:run": "npm run typeorm migration:run --config ./ormconfig.json",
"migration:revert": "npm run typeorm migration:revert --config ./ormconfig.json",
"migration:show": "npm run typeorm migration:show --config ./ormconfig.json"
}
}
而这个是ormconfig.json
内容:
{
"type": "postgres",
"host": "localhost",
"port": 5656,
"username": "bgt_admin",
"password": "jnppem",
"database": "bgt",
"synchronize": false,
"logging": true,
"maxQueryExecutionTime": 100000,
"migrationsTableName": "data_import_migrations",
"entities": [
"src/entity/**/*.ts"
],
"migrations": [
"src/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "src/entity",
"migrationsDir": "src/migration",
"subscribersDir": "src/subscriber"
}
}
See the result of run npm run migration:show
我在本地和全局安装了以下软件包:
- TypeScript:
v3.9.6
(本地和全球版本相同)
- ts-node:
v8.10.2
(本地和全球相同版本)
- TypeORM:
v0.2.25
(本地和全球版本相同)
此外,我在 Ubuntu 18.04.
上安装了 NodeJS(v14.5.0
) 和 NPM(v6.14.5
) 运行ning
我在 运行 typeorm migration:[run|show|revert]
时没有得到任何输出的原因可能是什么?
发生此问题的原因是我的“package.json”中的“pg”库与我安装的 Postgres 版本不兼容。
在我的项目中安装最新的“pg”库版本后,问题就不再存在了。
我创建了一个基于 TypeORM 的项目,仅用于 运行ning 迁移脚本;我正在使用 TypeORM CLI 对它们进行 run
、show
或 revert
,但执行时没有得到任何输出。
我得到输出的唯一情况是 运行 typeorm migration:create
或 npm run migration:create
,但在其他情况下,输出与以下相同:
这是我的 package.json
的内容,以便您可以看到我正在使用的 scripts
和依赖项:
{
"name": "bgt-data-import",
"version": "0.0.1",
"description": "BGT Data Import",
"devDependencies": {
"ts-node": "^8.10.2",
"@types/node": "^9.6.5",
"typescript": "^3.9.6"
},
"dependencies": {
"aws-sdk": "^2.709.0",
"axios": "^0.19.2",
"dotenv": "^8.2.0",
"npm": "^6.14.5",
"pg": "^7.3.0",
"reflect-metadata": "^0.1.10",
"typeorm": "0.2.25"
},
"scripts": {
"start": "ts-node src/index.ts",
"typeorm": "node -r ts-node/register ./node_modules/typeorm/cli.js",
"migration:generate": "npm run typeorm migration:generate --config ./ormconfig.json --name",
"migration:run": "npm run typeorm migration:run --config ./ormconfig.json",
"migration:revert": "npm run typeorm migration:revert --config ./ormconfig.json",
"migration:show": "npm run typeorm migration:show --config ./ormconfig.json"
}
}
而这个是ormconfig.json
内容:
{
"type": "postgres",
"host": "localhost",
"port": 5656,
"username": "bgt_admin",
"password": "jnppem",
"database": "bgt",
"synchronize": false,
"logging": true,
"maxQueryExecutionTime": 100000,
"migrationsTableName": "data_import_migrations",
"entities": [
"src/entity/**/*.ts"
],
"migrations": [
"src/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "src/entity",
"migrationsDir": "src/migration",
"subscribersDir": "src/subscriber"
}
}
See the result of run npm run migration:show
我在本地和全局安装了以下软件包:
- TypeScript:
v3.9.6
(本地和全球版本相同) - ts-node:
v8.10.2
(本地和全球相同版本) - TypeORM:
v0.2.25
(本地和全球版本相同)
此外,我在 Ubuntu 18.04.
上安装了 NodeJS(v14.5.0
) 和 NPM(v6.14.5
) 运行ning
我在 运行 typeorm migration:[run|show|revert]
时没有得到任何输出的原因可能是什么?
发生此问题的原因是我的“package.json”中的“pg”库与我安装的 Postgres 版本不兼容。
在我的项目中安装最新的“pg”库版本后,问题就不再存在了。