[英]Argument of type {…} is not assignable to parameter of type 'string | URL'
[英]Error on migration file: Argument of type 'string' is not assignable to parameter of type 'any[]'
我正在尝试使用 typeorm 创建迁移。 这是我的文件:
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/migration/1654614315001-changeAddressNumberDatatype.ts:7:13 - 错误 TS2345:“字符串”类型的参数不可分配给“任何 []”类型的参数。
如果我一次只修改一张表,它不会给我任何错误。 这是这样做的方法吗? 或者我可以在同一个迁移中修改多个表吗?
无法使用方法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`,
);
}
}
如果您不想为此使用字符串,则可以使用方法changeColumn
或changeColumns
来自同一表的多个列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.