package com.magistr.app.service;

import org.flywaydb.core.Flyway;
import org.springframework.stereotype.Service;

import javax.sql.DataSource;
import java.util.Objects;

@Service
public class TenantDatabaseMigrationService {

    /**
     * Выполняет миграции указанной tenant-БД. Ошибка намеренно не перехватывается:
     * вызывающий lifecycle обязан отменить активацию неподготовленного пула.
     */
    public void migrate(DataSource dataSource) {
        Objects.requireNonNull(dataSource, "DataSource для миграции обязателен");
        Flyway.configure()
                .dataSource(dataSource)
                .baselineOnMigrate(true)
                .baselineVersion("1")
                .load()
                .migrate();
    }
}
