実現したいこと
TypeORMを利用したいため、動作検証として
typeorm initでExpressのテンプレートから作成したものを利用して、
TypeORMのマイグレーションを実行してEntityからDBのテーブルを生成できるように環境構築しています。
しかし、公式ドキュメントの通りに実行してもマイグレーションファイルは生成できるのに、マイグレーションが実行できないです。
わかるかたいらっしゃいましたら教えてください。
command
1npx typeorm init --name MyProject --database mysql --express
project
1// テンプレートそのものですが、記載は一部省略 2MyProject 3 - src 4 - migrations 5 - entity 6 - data-source.ts 7 - package.json 8 - tsconfig.json
package.json
1{ 2 "name": "MyProject", 3 "version": "0.0.1", 4 "description": "Awesome project developed with TypeORM.", 5 "type": "commonjs", 6 "devDependencies": { 7 "ts-node": "10.7.0", 8 "@types/node": "^16.11.10", 9 "typescript": "4.5.2" 10 }, 11 "dependencies": { 12 "typeorm": "0.3.16", 13 "reflect-metadata": "^0.1.13", 14 "mysql": "^2.14.1", 15 "express": "^4.17.2", 16 "body-parser": "^1.19.1" 17 }, 18 "scripts": { 19 "start": "ts-node src/index.ts", 20 "typeorm": "typeorm-ts-node-commonjs" 21 } 22}
tsconfig.json
1{ 2 "compilerOptions": { 3 "lib": [ 4 "es5", 5 "es6" 6 ], 7 "target": "es5", 8 "module": "commonjs", 9 "moduleResolution": "node", 10 "outDir": "./build", 11 "emitDecoratorMetadata": true, 12 "experimentalDecorators": true, 13 "sourceMap": true 14 } 15}
txt
1// data-source.ts 2import "reflect-metadata"; 3import { DataSource } from "typeorm"; 4import { User } from "./entity/User"; 5 6// mysqlはインストール済みで、以下の設定になっています。 7export const AppDataSource = new DataSource({ 8 type: "mysql", 9 host: "localhost", 10 port: 3306, 11 username: "root", 12 password: "0000", 13 database: "test_db", 14 synchronize: true, 15 logging: false, 16 entities: [User], 17 migrations: [], 18 subscribers: [], 19});
試したこと
migrationファイルの生成(成功)
command
1npx typeorm migration:create ./src/migrations/migration 2 3// または npm run typeorm migration:create ./src/migrations/migration
migrationの実行(失敗)
command
1npm run typeorm migration:run -- -d ./src/data-source.ts
console
1PS C:\Users\user\vscode-workspace\MyProject> npm run typeorm migration:run -- -d ./src/data-source.ts 2 3> MyProject@0.0.1 typeorm 4> typeorm-ts-node-commonjs migration:run -d ./src/data-source.ts 5 6Error during migration run: 7Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 8 at Handshake.Sequence._packetToError (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) 9 at Handshake.ErrorPacket (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18) 10 at Protocol._parsePacket (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\Protocol.js:291:23) 11 at Parser._parsePacket (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\Parser.js:433:10) 12 at Parser.write (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\Parser.js:43:10) 13 at Protocol.write (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\Protocol.js:38:16) 14 at Socket.<anonymous> (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\Connection.js:88:28) 15 at Socket.<anonymous> (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\Connection.js:526:10) 16 at Socket.emit (node:events:513:28) 17 at Socket.emit (node:domain:489:12) 18 -------------------- 19 at Protocol._enqueue (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\Protocol.js:144:48) 20 at Protocol.handshake (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\protocol\Protocol.js:51:23) 21 at PoolConnection.connect (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\Connection.js:116:18) 22 at Pool.getConnection (C:\Users\user\vscode-workspace\MyProject\node_modules\mysql\lib\Pool.js:48:16) 23 at C:\Users\user\vscode-workspace\MyProject\src\driver\mysql\MysqlDriver.ts:1265:18 24 at new Promise (<anonymous>) 25 at MysqlDriver.createPool (C:\Users\user\vscode-workspace\MyProject\src\driver\mysql\MysqlDriver.ts:1262:16) 26 at MysqlDriver.connect (C:\Users\user\vscode-workspace\MyProject\src\driver\mysql\MysqlDriver.ts:400:36) 27 at DataSource.initialize (C:\Users\user\vscode-workspace\MyProject\src\data-source\DataSource.ts:249:27) 28 at Object.handler (C:\Users\user\vscode-workspace\MyProject\src\commands\MigrationRunCommand.ts:52:30) { 29 code: 'ER_NOT_SUPPORTED_AUTH_MODE', 30 errno: 1251, 31 sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client', 32 sqlState: '08004', 33 fatal: true 34}
回答1件
あなたの回答
tips
プレビュー