Mat*_*újo 10 postgresql node.js typeorm
新的 typeorm 发布后,迁移时会遇到一些麻烦。
前段时间我正在使用该代码并且它有效
entities: ['./src/modules/**/infra/typeorm/entities/*.ts'],
migrations: ['./src/shared/infra/typeorm/migrations/*.ts'],
cli: {
migrationsDir: './src/shared/infra/typeorm/migrations'
}
Run Code Online (Sandbox Code Playgroud)
但现在我无法指定 cli 属性。要创建新的迁移,我必须指定整个迁移路径
npm run typeorm migration:create ./src/database/migrations -n SomeTest
Run Code Online (Sandbox Code Playgroud)
有没有另一种方法可以在不指定整个路径的情况下做到这一点?
小智 19
创建 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',
});
Run Code Online (Sandbox Code Playgroud)
安装“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"
Run Code Online (Sandbox Code Playgroud)
命令示例
"npm run migration:create --name=Test1"
Run Code Online (Sandbox Code Playgroud)
看看这个项目
Jef*_*fox 16
截至 2022 年 6 月,该文档已过时-n MigrationName,不再受支持。你可以这样做:
typescript esm:
npx typeorm-ts-node-esm migration:create src/database/migration/MigrationFileName其中MigrationFileName是要创建的文件名,src/database/migration/是路径。
打字稿通用:
npx typeorm-ts-node-commonjs migration:create
PS 这可能会迟到,但这可以拯救其他人。PS 我自己才发现这一点。如果将来这不起作用,请告诉我,这样我也会知道。
我的 package.json 中有以下脚本来解决这个问题。
"migration:run": "typeorm -d src/datasource/datasource.ts migration:run",
"migration:create":"cd ./src/db/migrations && typeorm-ts-node-commonjs migration:create",
Run Code Online (Sandbox Code Playgroud)
因此,每当我想创建新的迁移文件时,我都可以简单地运行
npm run migration:create nameOfMigration而不指定整个目录。
| 归档时间: |
|
| 查看次数: |
22612 次 |
| 最近记录: |