@hinie

Как запустить миграции knex после старта сервера?

Привет, если ли возможность запустить миграции сразу после старта сервера nest, knex
Это необходимо так как база :memory: (она самодропается при закрытии приложения и нужно заново провести миграции при старте)
KnexModule.forRootAsync({
      useFactory: () => ({
        config: {
          client: 'sqlite3',
          useNullAsDefault: true,
          connection: ':memory:',
        },
      }),
    }),
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
i229194964
@i229194964
Веб разработчик
import { Module, OnModuleInit } from '@nestjs/common';
import { KnexModule } from '@nestjsplus/knex';
import { MigrationConfig } from '@nestjsplus/knex/dist/interfaces/migration-config.interface';
import * as path from 'path';

@Module({
  imports: [
    KnexModule.forRootAsync({
      useFactory: (): MigrationConfig => ({
        config: {
          client: 'sqlite3',
          useNullAsDefault: true,
          connection: ':memory:',
        },
        migrations: {
          directory: path.resolve(__dirname, 'migrations'),
        },
      }),
    }),
  ],
})
export class DatabaseModule implements OnModuleInit {
  constructor(private readonly knexService: KnexService) {}

  async onModuleInit() {
    await this.knexService.client.migrate.latest();
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы