Фиктивные миграции и откаты
Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Вы можете выполнить миграцию в фиктивном режиме с помощью флага --fake (-f сокращённо). Это добавит миграцию
в таблицу migrations без фактического выполнения. Полезно, когда изменения уже внесены вручную
или миграции были выполнены внешним инструментом, но нужно сохранить историю.
typeorm migration:run -d path-to-datasource-config --fake
Фиктивный режим также доступен для откатов.
typeorm migration:revert -d path-to-datasource-config --fake
Режимы транзакций
По умолчанию TypeORM выполняет все миграции в одной транзакции (флаг --transaction all).
Для детального контроля используйте:
--transaction each— каждая миграция в отдельной транзакции--transaction none— отключение транзакций
Дополнительно к этим флагам, вы также можете переопределить поведение транзакции для каждой миграции, установив свойство transaction в MigrationInterface в true или false. Это работает только в режимах транзакции each или none.
import { MigrationInterface, QueryRunner } from "typeorm"
export class AddIndexTIMESTAMP implements MigrationInterface {
transaction = false
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE INDEX CONCURRENTLY post_names_idx ON post(name)`,
)
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX CONCURRENTLY post_names_idx`)
}
}