我的迁移文件变得相当大了,我想知道是否有一种方法可以使用TypeORM将迁移文件压缩成一个文件,而不需要使用纯SQL。
我的迁移文件变得相当大了,我想知道是否有一种方法可以使用TypeORM将迁移文件压缩成一个文件,而不需要使用纯SQL。
你可以像0xCAP说的那样做。但是当新的迁移被创建时,你不应该在生产环境中运行它,因为所有的事情都已经完成了。
你可以使用--fake
命令选项来伪造它,具体请参考typeorm documentation。
typeorm migration:run --fake
这将标记迁移已完成而不执行它。
否则,你可以修改迁移路径的正则表达式。例如:
migrations: process.env.SKIP_MIGRATION ? ['${rootDir}/../migrations/!(mysquashedmigration){.ts,.js}'] : ['${rootDir}/../migrations/*{.ts,.js}'],
typeorm migration:generate path/to/SquashedMigrations -d path/to/datasource
export class squashedMigrations12345678910 implements MigrationInterface {
name = 'squashedMigrations12345678910'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE ...`);
-- name = 'squashedMigrations12345678910'
++ name = 'lastMigration1634532141863'
--fake
选项,也不会再次执行它。因此,在这种情况下,您不需要使用 --fake
。您可以将它们全部删除,然后重新生成迁移。新生成的迁移将包含所有先前的迁移。