TypeOrm не генерирует миграцию в проекте, созданном typeorm
Я использую генератор шаблонов для создания проекта, но он завершается с ошибкой, когда я пытаюсь создать шаблон.
Ожидаемое поведение
Создайте миграцию с помощью сценариев 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
Моя среда
1 ответ
Проблема в том, что вы используете Typeorm CLI с NodeJS, но ваши объекты по-прежнему являются некомпилированными файлами Typescript. Один из способов исправить это, запустив CLI, используя
ts-node
.
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