迁移文件错误:"字符串"类型的参数不可分配给类型为"any[]"的参数



我试图创建一个迁移与typeform。这是我的文件:

import { MigrationInterface, QueryRunner } from "typeorm"
export class changeAddressNumberDatatype1654614315001 implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "accounts" MODIFY "address_number" varchar(50)`,
`ALTER TABLE "service-request" MODIFY "address_number" varchar(50)`
)
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "accounts" MODIFY "address_number" int`,
`ALTER TABLE "service-request" MODIFY "address_number" int`
)
}
}
我得到的错误是:

src/迁移/1654614315001 - changeaddressnumberdatatype。ts: 13 -错误TS2345: 'string'类型的参数不能赋值给参数类型'any[]'.

如果一次只修改一个表,它不会给我任何错误。是这样做的吗?或者我可以在同一迁移中修改多个表吗?

不能使用query方法修改多个表的列。

正确的做法是一个一个地修改:

export class changeAddressNumberDatatype1654614315001
implements MigrationInterface
{
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "accounts" MODIFY "address_number" varchar(50)`,
);
await queryRunner.query(
`ALTER TABLE "service-request" MODIFY "address_number" varchar(50)`,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "accounts" MODIFY "address_number" int`,
);
await queryRunner.query(
`ALTER TABLE "service-request" MODIFY "address_number" int`,
);
}
}

如果你不想使用字符串,你可以使用方法changeColumnchangeColumns从同一表的多个列。

最新更新