Настройка
Эта страница переведена 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