postgresql 如何为typeorm CLI指定迁移目录

x7yiwoj4  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(5)|浏览(170)

在新的typeorm发布之后,在迁移方面遇到了一些麻烦。
不久前,我使用了该代码,它工作。

entities: ['./src/modules/**/infra/typeorm/entities/*.ts'],
migrations: ['./src/shared/infra/typeorm/migrations/*.ts'],
cli: {
  migrationsDir: './src/shared/infra/typeorm/migrations'
}

但现在我无法指定cli属性。要创建新迁移,我必须指定整个迁移路径

npm run typeorm migration:create ./src/database/migrations -n SomeTest

是否有其他方法可以在不指定整个路径情况下执行此操作?

jyztefdp

jyztefdp1#

自2022年6月起,文档将被输出-n MigrationName不再受支持。您可以改为执行以下操作:
typescript esm:npx typeorm-ts-node-esm migration:create src/database/migration/MigrationFileName,其中MigrationFileName是要创建的文件名,src/database/migration/是路径。
typescript 公用:npx typeorm-ts-node-commonjs迁移:创建
附言:这可能晚了,但这可以保存其他人。附言:我刚刚发现这一点。如果这在未来不工作,让我知道,这样我也会知道。

rkttyhzu

rkttyhzu2#

创建ormconfig.ts

import { DataSource } from 'typeorm';

export const AppDataSource = new DataSource({
  type: 'postgres',
  host: 'localhost',
  port: 5432,
  username: 'postgres',
  password: 'password',
  database: 'postgres',
  entities: ['dist/**/*.entity.js'],
  logging: true,
  synchronize: false,
  migrationsRun: false,
  migrations: ['dist/**/migrations/*.js'],
  migrationsTableName: 'history',
});

安装“cross-var”包在package.json文件中添加命令

"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli -d ormconfig.ts",
"migration:create": "cross-var ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli migration:create ./src/migrations/$npm_config_name",
"migration:generate": "cross-var npm run typeorm -- migration:generate ./src/migrations/$npm_config_name",
"migration:run": "npm run build && npm run typeorm -- migration:run",
"migration:revert": "npm run typeorm -- migration:revert"

命令示例

"npm run migration:create --name=Test1"

你看这个

x6492ojm

x6492ojm3#

在提交此答案时,似乎没有解决方法。您可以在创建新迁移时指定路径,就像您所做的那样
typeorm迁移:创建-n用户迁移-d源/迁移

disbfnqx

disbfnqx4#

我遇到了这个问题,我通过删除-n来给予名称来解决它:yarn typeorm migration:create但它将文件保存在根文件夹中,即使在config.json文件中指定了该文件,要将其保存在适当的位置,您必须传递yarn path typeorm migration:create src/database/migrations/

gupuwyp2

gupuwyp25#

不幸的是,yarn不支持$npm_config特性。因此,我尝试了下面的脚本作为解决方案,它对我很有效。
Yarn does not support setting npm_config env via CLI parameter like NPM

"migration:create":"cd src/migrations && npx typeorm-ts-node-commonjs migration:create",
"migration:generate":"cd src/migrations && npx typeorm-ts-node-commonjs migration:generate -d <YOUR_DATASOURCE_CONFIG_PATH>",

相关问题