当尝试运行TypeORM迁移时,无论是在应用程序启动时自动运行还是通过TypeORM CLI手动运行,都只创建了迁移表(并且它保持为空)。不会执行迁移文件本身。
这是我的tsfig.json
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true
}
}
这是我的包裹。json
...
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
...
这是我的ormfig.json
...
"entities": ["dist/**/*.entity{.ts,.js}"],
"synchronize": true,
"migrationsRun": true,
"migrations ": ["dist/migrations/*{.ts,.js}"],
"cli": {
"migrationsDir": "src/migrations"
}
...
迁移文件是通过TypeORM CLI创建的,它们将填充一些表(INSERT语句)。它们与数据库架构中的更改无关。
拜托,有谁能帮我把它修好吗?
3条答案
按热度按时间ycl3bljg1#
那真是个愚蠢的问题!我想有时候最简单的问题也是最难发现的。
问题出在
ormconfig.json
文件中。我删除了这个空格("migrations ":
),一切都运行得很好。ejk8hzay2#
您应该已同步到False
synchronize:false
并从航站楼运行
npx typeorm migration:generate -n AnyNameYouWant
在那之后,你可以跑
npx typeorm migration:run
在运行这些命令之前,您可能还必须运行
nest build
。7uhlpewt3#
我认为这是为了使数据库与模式同步,这不是一个好主意。“Synchronize”:True,