ormconfig.json
我正在尝试像这样运行 TypeORM 迁移
{
"name": "default",
"type": "postgres",
"host": "ip-is-here",
"port": 5432,
"username": "name",
"password": "12345",
"database": "db1",
"synchronize": false,
"logging": false,
"entities": ["dist/storage/**/*.js"],
"migrations": ["dist/storage/migrations/**/*.js"],
"cli": {
"entitiesDir": "src/storage",
"migrationsDir": "src/storage/migrations"
}
}
Run Code Online (Sandbox Code Playgroud)
通过yarn typeorm migration:run
但是得到一个错误:
Missing required argument: dataSource
Run Code Online (Sandbox Code Playgroud)
我必须做什么?谢谢您的建议!
小智 46
TypeOrm在0.3.0ormconfig.json
版本中删除了支持。您应该使用新语法 - 为您的数据库创建并指定选项,例如:ormconfig.ts
export const connectionSource = new DataSource({
migrationsTableName: 'migrations',
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'user',
password: 'pass',
database: 'somehealthchecker',
logging: false,
synchronize: false,
name: 'default',
entities: ['src/**/**.entity{.ts,.js}'],
migrations: ['src/migrations/**/*{.ts,.js}'],
subscribers: ['src/subscriber/**/*{.ts,.js}'],
});
Run Code Online (Sandbox Code Playgroud)
然后,运行连接后:
await connectionSource.initialize();
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式获取实体:
const myRepo = connectionSource.getRepository(SomeEntity)
Run Code Online (Sandbox Code Playgroud)
此外,您的脚本package.json
应该如下所示:
"migration:generate": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:generate -d src/modules/config/ormconfig.ts",
"migration:up": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:run -d src/modules/config/ormconfig.ts",
"migration:down": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:revert -d src/modules/config/ormconfig.ts",
Run Code Online (Sandbox Code Playgroud)
命令后,只需在控制台中给出迁移名称,无需 -n 选项
如果您按照 typeorm设置使用 cli 设置,则使用最新的 typescript
然后下面的 package.json 脚本将起作用
"scripts": {
"typeorm": "typeorm-ts-node-commonjs -d ./src/datasources/PostgresDatasource.ts",
}
Run Code Online (Sandbox Code Playgroud)
跑步npm run typeorm migration:generate src/migration/initaltables
npm run typeorm migration:run
小智 6
请不要忘记--
如果需要将带有破折号的参数传递给npm脚本,则需要将它们添加到--后面。例如,如果需要生成,命令是这样的:
Run Code Online (Sandbox Code Playgroud)npm run typeorm migration:generate -- -n migrationNameHere
文档在这里。
归档时间: |
|
查看次数: |
41473 次 |
最近记录: |