liquibase.command.core.ChangelogSyncSqlCommandStep Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of liquibase-core Show documentation
Show all versions of liquibase-core Show documentation
Liquibase is a tool for managing and executing database changes.
package liquibase.command.core;
import liquibase.command.*;
import liquibase.command.core.helpers.DatabaseChangelogCommandStep;
import liquibase.database.Database;
import liquibase.util.LoggingExecutorTextUtil;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
public class ChangelogSyncSqlCommandStep extends ChangelogSyncCommandStep {
public static final String[] COMMAND_NAME = {"changelogSyncSql"};
public static final CommandArgumentDefinition OUTPUT_DEFAULT_SCHEMA_ARG;
public static final CommandArgumentDefinition OUTPUT_DEFAULT_CATALOG_ARG;
static {
CommandBuilder builder = new CommandBuilder(COMMAND_NAME);
OUTPUT_DEFAULT_SCHEMA_ARG = builder.argument("outputDefaultSchema", Boolean.class)
.description("Control whether names of objects in the default schema are fully qualified or not. If true they are. If false, only objects outside the default schema are fully qualified")
.defaultValue(true).build();
OUTPUT_DEFAULT_CATALOG_ARG = builder.argument("outputDefaultCatalog", Boolean.class)
.description("Control whether names of objects in the default catalog are fully qualified or not. If true they are. If false, only objects outside the default catalog are fully qualified")
.defaultValue(true).build();
}
@Override
public List> requiredDependencies() {
List> dependencies = new ArrayList<>();
dependencies.add(Writer.class);
dependencies.addAll(super.requiredDependencies());
return dependencies;
}
@Override
public void run(CommandResultsBuilder resultsBuilder) throws Exception {
final CommandScope commandScope = resultsBuilder.getCommandScope();
final Database database = (Database) commandScope.getDependency(Database.class);
final String changelogFile = commandScope.getArgumentValue(DatabaseChangelogCommandStep.CHANGELOG_FILE_ARG);
LoggingExecutorTextUtil.outputHeader("SQL to add all changesets to database history table", database, changelogFile);
super.run(resultsBuilder);
}
@Override
public String[][] defineCommandNames() {
return new String[][] { COMMAND_NAME};
}
@Override
public void adjustCommandDefinition(CommandDefinition commandDefinition) {
commandDefinition.setShortDescription("Output the raw SQL used by Liquibase when running changelogSync");
}
}