我通过以下方式解决了这个问题:
- 在 postgres 中删除并重新创建我的数据库
- 跑
npm run typeorm:reset
- 然后
npm run typeorm:migrate
- 然后
typeorm:run
脚本供参考
package.json
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js",
"typeorm:sync": "npm run typeorm schema:sync",
"typeorm:drop": "npm run typeorm schema:drop",
"typeorm:reset": "npm run typeorm:drop && npm run typeorm:sync",
"typeorm:migrate": "env NODE_ENV=development npm run typeorm migration:generate -- -n",
"typeorm:create": "env NODE_ENV=development npm run typeorm migration:create -- -n",
"typeorm:run": "ts-node -r tsconfig-paths/register $(yarn bin typeorm) migration:run"
ormconfig.js
const config = {
type: 'postgres',
host: process.env.RDS_HOST,
port: Number(process.env.RDS_PORT),
username: process.env.RDS_USERNAME,
password: process.env.RDS_PASSWORD,
database: process.env.RDS_DB_NAME,
synchronize: process.env.NODE_ENV === 'production' ? false : true,
dropSchema: false,
logging: process.env.NODE_ENV === 'development' ? true : false,
entities: [`${__dirname}/src/**/**.entity{.ts,.js}`],
migrations: [`${__dirname}/src/migrations/**/*{.ts,.js}`],
cli: {
migrationsDir: 'src/migrations',
},
}
module.exports = config
注意:
- 在我的 typeORM 脚本中,我使用
tsconfig-paths/register,因为我在我的 *.entity.ts 文件中使用的 tsconfig.json 文件中有路径别名。