РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsPmMgRM 153 of 168 menu
◀ ▶

Применение миграций в Nest

Пусть файлы шагов уже лежат в проекте, а PostgreSQL ещё не знает, какие из них уже выполнялись. Без учёта порядка и журнала одни и те же правки могут накладываться повторно.

Отдельный источник данных для CLI хранит параметры соединения, список сущностей и каталог миграций. При synchronize со значением false приложение само таблицы не трогает: схему меняют только команды CLI. Запуск выполнения шагов идёт из корня после сборки, потому флаг источника указывает на собранный файл настроек.

Покажем на примере постов:

import { DataSource } from 'typeorm'; export default new DataSource({ type: 'postgres', host: 'localhost', port: 5432, username: 'postgres', password: 'postgres', database: 'site', synchronize: false, entities: ['dist/**/*.entity.js'], migrations: ['dist/migrations/*.js'], });

В файле миграции тела методов можно оставить пустыми: для первого прогона важнее источник и команда выполнения:

import { MigrationInterface, QueryRunner } from 'typeorm'; export class CreatePosts1730000000000 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise<void> { } public async down(queryRunner: QueryRunner): Promise<void> { } }

После сборки проекта выполняют накопившиеся шаги:

npx typeorm migration:run -d dist/data-source.js

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить