gpt4 book ai didi

node.js - TypeORM 无法将 cli 与配置一起使用

转载 作者:行者123 更新时间:2023-12-05 01:24:09 26 4
gpt4 key购买 nike

我有我的( typescript )项目(如果这很重要,它是一个不和谐的机器人),其中包含一个“ormconfig.json”文件。此文件包含我对 TypeORM 的配置,如下所示:

{
"type": "mysql",
"host": "<IP of my server>",
"port": 3306,
"username": "<MySQL User>",
"password": "<MySQL Password>",
"database": "<existing MySQL database>",
"synchronize": true,
"logging": false,
"entities": [
"src/entities/*.ts"
],
"migrations": [
"src/migration/*.ts"
],
"subscribers": [
"src/subscriber/*.ts"
],
"cli": {
"entitiesDir": "src/entities/",
"migrationsDir": "src/migration/",
"subscribersDir": "src/subscriber/"
}
}

现在,如果我在我的实际服务器上运行任何东西,一般的配置都可以工作。实体被正确加载,我可以按预期使用它们。现在我在实体中做了一些更改,这意味着我必须进行迁移。尝试生成迁移使实际问题出现。

我尝试运行以下命令:

npm run typeorm migration:show -- -d .\ormconfig.json

我希望这会加载配置、连接到服务器、检查数据库并给我输出。然而,当它加载时,它只是抛出一个错误,说

给定的数据源文件必须包含 DataSource 实例的导出

我也尝试通过 javascript 进行操作,但是当我导出“DataSource”-Instance 时,我收到类似的错误:

给定的文件路径无效:“C:\temp\Bot\src\database.ts”。文件必须包含 TypeScript/JavaScript 代码并导出 DataSource 实例。

下面也是我的 package.json 文件,用于项目的依赖项。

{
"name": "Bot",
"version": "1.1.1",
"description": "desc",
"main": "index.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"serve": "npx ts-node src/index.ts",
"start": "npx ts-node src/index.ts",
"typeorm": "npx --require ts-node/register ./node_modules/typeorm/cli.js",
},
"author": "PlayWolfYT",
"license": "ISC",
"dependencies": {
"@discordjs/builders": "^0.12.0",
"@discordjs/rest": "^0.3.0",
"@types/nodemailer": "^6.4.4",
"dayjs": "^1.10.8",
"discord-api-types": "^0.27.0",
"discord.js": "^13.6.0",
"mysql2": "^2.3.3",
"nodemailer": "^6.7.2",
"nodemon": "2.0.15",
"reflect-metadata": "^0.1.13",
"ts-node": "^10.5.0",
"typeorm": "^0.3.3",
"typescript": "^4.6.2"
},
"devDependencies": {
"@types/node": "^17.0.21",
"@discordjs/builders": "^0.12.0",
"@discordjs/rest": "^0.3.0"
}
}

最佳答案

因此,您使用的是 Typeorm 的较新版本之一,他们在其中放弃了对 ormconfig.{json,xml} 文件的支持。您必须使用 Data Source 将数据库连接选项放入 {ts,js} 文件中并将其导出。

解决您的问题的两个选项:

  • 将你的 typeorm 降级到 0.2.45:npm i typeorm@0.2.45;
  • 按照新文档更新您的代码:Typeorm docs ;

如果需要,我可以通过编辑此答案来帮助您进行设置,只需在下方评论即可。

关于node.js - TypeORM 无法将 cli 与配置一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71602046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com