Перейти к основному содержанию

Настройка

Неофициальный Бета-перевод

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Перед работой с миграциями необходимо правильно настроить параметры вашего источника данных (DataSource):

export default new DataSource({
// basic setup
synchronize: false,
migrations: [__dirname + "/migrations/**/*{.js,.ts}"],

// optional
migrationsRun: false,
migrationsTableName: "migrations",
migrationsTransactionMode: "all",

// other options...
})

synchronise

Отключение автоматической синхронизации схемы обязательно при работе с миграциями. Иначе они теряют смысл.

migrations

Определяет список миграций, которые TypeORM должен загрузить. Принимает как классы миграций, так и директории для загрузки.

Проще всего указать директорию с файлами миграций (поддерживаются шаблоны glob):

migrations: [__dirname + "/migrations/**/*{.js,.ts}"]

Указание расширений .js и .ts позволит запускать миграции в разработке и из скомпилированных JavaScript-файлов в продакшене (например, из Docker-образа).

Альтернативно можно указать конкретные классы для более детального управления:

import FirstMigration from "./migrations/TIMESTAMP-first-migration"
import SecondMigration from "./migrations/TIMESTAMP-second-migration"

export default new DataSource({
migrations: [FirstMigration, SecondMigration],
})

но это требует больше ручной работы и может приводить к ошибкам.

  • migrationsRun - Определяет, запускать ли миграции автоматически при каждом запуске приложения.

Дополнительные настройки

migrationsRun

Определяет, следует ли автоматически запускать миграции при каждом старте приложения. По умолчанию: false

migrationsTableName

Можно указать имя таблицы для хранения информации о выполненных миграциях. По умолчанию используется 'migrations'.

migrationsTableName: "some_custom_migrations_table"

migrationsTransactionMode

Управляет режимом транзакций при выполнении миграций. Доступные варианты:

  • all (по умолчанию) - объединяет выполнение миграций в одну транзакцию

  • none

  • each