首页 > 解决方案 > 出现错误“MissingDriverError:错误的驱动程序:给出了“未定义”。” 同时使用 TypeORM 生成迁移

问题描述

我正在尝试生成迁移。我已将这些行添加到 package.json

 "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js  --config src/config/configuration.ts",
 "migration:generate":"npm run typeorm migration:generate -- -n"

我有一个 configuration.ts 文件,而不是看起来像这样的 ormconfig.json。

import { join } from 'path';

export default () => {
  const host = process.env.DB_HOST;
  const port = process.env.DB_PORT;
  const username = process.env.DB_USERNAME;
  const password = process.env.DB_PASSWORD;
  const database = process.env.DB_DATABASE;

  return {
    database: {
      type: 'mariadb',
      host,
      port,
      username,
      password,
      database,
      entities: ['dist/**/*.entity{.ts,.js}'],
      synchronize: false,
      migrations: ['/src/migration/**/*.ts'],
      keepConnectionAlive: true,
      charset: 'utf8mb4',
      cli: {
        migrationsDir: '/src/migrations',
      },
    },
  };
};

运行命令时

npm run migration:generate -- softDeleteUser

有这个错误

> user-service@0.0.1 migration:generate
> npm run typeorm migration:generate -- -n "softDeleteUser"


> user-service@0.0.1 typeorm
> node --require ts-node/register ./node_modules/typeorm/cli.js  --config src/config/configuration.ts "migration:generate" "-n" "softDeleteUser"

Error during migration generation:
MissingDriverError: Wrong driver: "undefined" given. Supported drivers are: "cordova", "expo", "mariadb", "mongodb", "mssql", "mysql", "oracle", "postgres", "sqlite", "better-sqlite3", "sqljs", "react-native", "aurora-data-api", "aurora-data-api-pg".
at new MissingDriverError (/Users/akash/Documents/Projects/pulp-backend/user-service/src/error/MissingDriverError.ts:8:9)
    at DriverFactory.create (/Users/akash/Documents/Projects/pulp-backend/user-service/src/driver/DriverFactory.ts:67:23)
    at new Connection (/Users/akash/Documents/Projects/pulp-backend/user-service/src/connection/Connection.ts:128:43)
    at ConnectionManager.create (/Users/akash/Documents/Projects/pulp-backend/user-service/src/connection/ConnectionManager.ts:64:28)
    at Object.<anonymous> (/Users/akash/Documents/Projects/pulp-backend/user-service/src/index.ts:230:35)
    at step (/Users/akash/Documents/Projects/pulp-backend/user-service/node_modules/tslib/tslib.js:141:27)
    at Object.next (/Users/akash/Documents/Projects/pulp-backend/user-service/node_modules/tslib/tslib.js:122:57)
    at /Users/akash/Documents/Projects/pulp-backend/user-service/node_modules/tslib/tslib.js:115:75
    at new Promise (<anonymous>)
    at Object.__awaiter (/Users/akash/Documents/Projects/pulp-backend/user-service/node_modules/tslib/tslib.js:111:16)

有什么建议么?

标签: node.jsnestjstypeorm

解决方案


您是否尝试像这样导出配置:

export = ORMConfig;

推荐阅读