【问题标题】:TypeORM don't generate migration in project created by TypeORMTypeORM 不会在由 TypeORM 创建的项目中生成迁移
【发布时间】:2021-12-05 02:26:51
【问题描述】:

我正在使用模板生成器来创建项目,但是当我尝试生成模板时它退出并出错

预期行为

使用 sql 脚本生成迁移

实际行为

$ C:\Users\alexa\lab\ProjectTypeOrm\node_modules\.bin\typeorm migration:generate -n User
Error during migration generation:
C:\Users\myname\lab\ProjectTypeOrm\src\entity\User.ts:1
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:988:16)
    at Module._compile (internal/modules/cjs/loader.js:1036:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
    at C:\Users\alexa\lab\ProjectTypeOrm\node_modules\typeorm\util\DirectoryExportedClassesLoader.js:42:39
    at Array.map (<anonymous>)
    at Object.importClassesFromDirectories (C:\Users\alexa\lab\ProjectTypeOrm\node_modules\typeorm\util\DirectoryExportedClassesLoader.js:42:10)       
error Command failed with exit code 1.

复制步骤

typeorm init --name ProjectTypeOrm --database mysql --express --docker
cd ProjectTypeOrm
docker-compose up
yarn
yarn typeorm migration:create -n User
yarn typeorm migration:generate -n User

我的环境

Dependency Version
Operating System Windows 10 Home
Node.js version 14.17.6
Typescript version 3.3.3333
TypeORM version 0.2.38
Yarn 1.22.11

【问题讨论】:

    标签: node.js typescript yarnpkg typeorm


    【解决方案1】:

    问题是您正在使用 NodeJS 运行 Typeorm CLI,但您的实体仍然是未编译的 Typescript 文件。解决此问题的一种方法是使用 ts-node 运行 CLI。

    npx ts-node node_modules\typeorm\cli.js migration:generate -n User
    

    如果您经常使用此命令,您可以将自定义脚本添加到您的 package.json,这样您就不必每次都输入整个内容。

    {
      "scripts": {
        "orm": "ts-node node_modules/typeorm/cli.js"
      },
      "devDependencies" : {
        "ts-node": "^10"
      }
    }
    

    然后在你的终端中调用它。

    npm run orm -- migration:generate -n User
    

    【讨论】:

    • 它对我有用!谢谢你:)
    猜你喜欢
    • 2022-11-14
    • 2019-11-17
    • 2020-11-07
    • 2020-12-30
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2021-05-12
    相关资源
    最近更新 更多