public static void main(String[] args) {
        try {
            Options clOptions = getCommandLineOptions();
            CommandLine cl = parseCommandLine(args, clOptions);

            if( !requiredOptionsSetted(cl) || helpOptionSetted(cl) ) {
                showHelpAndExit(clOptions);
            }

            ExecutionConfiguration.Builder ecBuilder = ExecutionConfiguration.newBuilder();

            if (cl.hasOption("c")) {
                ecBuilder.withAction(ActionType.valueOf(cl.getOptionValue("c")));
            }

            if (cl.hasOption("f")) {
                ecBuilder.withSqlFilesPath(cl.getOptionValue("f"));
            }

            if (cl.hasOption("t")) {
                for (String target : Splitter.on(",").split(cl.getOptionValue("t"))) {
                    ecBuilder.withTarget(target);
                }
            }

            ExecutionConfiguration ec = ecBuilder.build();
            DbMigrator.execute(ec);

            DBMLogger.info("Migration ended with success !!");

            exit(0);
        } catch (Exception e) {
            DBMLogger.error(e.getMessage());
            exit(1);
        }
    }