All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.icthh.xm.commons.migration.db.tenant.DropSchemaResolver Maven / Gradle / Ivy

There is a newer version: 4.0.21
Show newest version
package com.icthh.xm.commons.migration.db.tenant;

import lombok.extern.slf4j.Slf4j;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Slf4j
@Component
public class DropSchemaResolver {

    private static final String DEFAULT_COMMAND = "DROP SCHEMA IF EXISTS %s CASCADE";

    private static final Map DB_COMMANDS = new HashMap<>();

    static {
        DB_COMMANDS.put("POSTGRESQL", DEFAULT_COMMAND);
        DB_COMMANDS.put("H2", DEFAULT_COMMAND);
    }

    private String dbDropSchemaCommand;

    /**
     * DropSchemaResolver constructor.
     * @param env the environment
     */
    public DropSchemaResolver(Environment env) {
        String db = env.getProperty("spring.jpa.database");
        this.dbDropSchemaCommand = DB_COMMANDS.getOrDefault(db, DEFAULT_COMMAND);
        log.info("Database {} will use command '{}' for drop schema", db, dbDropSchemaCommand);
    }

    public String getSchemaDropCommand() {
        return this.dbDropSchemaCommand;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy