dropAll command

dropAll drops all database objects owned by the user. dropAll will not drop functions, procedures, or packages for the community version of Liquibase. Functions, procedures, packages, and synonyms can only be dropped for Liquibase Pro supported objects.

Uses

dropAll is typically used when there is a need to prepare an environment schema to be identical to another environment schema. dropAll is useful in the developer and test environments to remove unwanted objects to reset the database to “empty”.

The command makes it easier to standardize another schema, compared to manually deleting the objects, or dropping and recreating the desired schema.

dropAll should not be used in a production environment to prevent removal of required objects.

Running the dropAll command

To run the dropAll command, you can specify the driver, classpath, and URL in your liquibase.properties file. For more information, see Creating and configuring a liquibase.properties file. You can also specify these properties in your command line.

Then run the dropAll command:

liquibase dropAll

dropAll global attributes

Attribute Definition Requirement
--url Specifies the JDBC database connection URL Required
--username Specifies the database username Required
--password Specifies the database password Required

Note: The username and password attributes are not required for connections and systems which use alternate means of authentication.

Using the dropAll command with Liquibase Hub

If you use Liquibase Hub and want to receive the dropAll operation reports, you need to specify one of the following attributes when running the dropAll command.

Attribute Definition Requirement
--hubConnectionId The attribute that identifies the specific target in which to record your data at Liquibase Hub. The attribute is available in your Project at https://hub.liquibase.com. The attribute is required only for the Liquibase Hub reporting
--hubProjectId The attribute that identifies the specific Project in which to record your data at Liquibase Hub. The attribute is available in your account at https://hub.liquibase.com. The attribute is required only for the Liquibase Hub reporting
--changeLogFile A registered changelog file that identifies the specific Project in which to record your data at Liquibase Hub. The attribute is optional to run the dropAll command. If you specify a Liquibase Hub registered changelog, it will enable Liquibase Hub reporting.

Additionally, you need to be a Liquibase Hub user with a Liquibase Hub API Key set in the liquibase.properties file or passed in the command line.

liquibase.properties example

liquibase.hub.apiKey: <HubAPIKey>
liquibase.hub.connectionId: <targetId>
liquibase.hub.projectId: <projectId>

CLI example

liquibase dropAll --hubProjectId=<projectId> --liquibaseHubApiKey=<addYourHubApiKeyHere>
liquibase dropAll --hubConnectionId=<targetId> --liquibaseHubApiKey=<addYourHubApiKeyHere>

You can also set your properties as Liquibase Environment variables:

LIQUIBASE_HUB_API_KEY="<HubAPIKey>"
LIQUIBASE_COMMAND_HUB_PROJECT_ID="<projectId>"
LIQUIBASE_COMMAND_HUB_CONNECTION_ID="<targetId>"

Note: To retrieve or manage your API keys, go to API Keys by selecting your account in the upper-right corner of the page. To find the hubProjectId, select Projects > View Details. To find the hubConnectionId, select Project > View Details > Targets > View Status > Target ID.

dropAll example output

When successful, the dropAll command produces the following output:

Liquibase Pro 3.9.0 by Datical licensed to Liquibase Pro Customer until Tue Sep 22 19:00:00 CDT 2020
All objects dropped from MVN_UAT@jdbc:oracle:thin:@support.datical.net:1521:ORCL
Liquibase command 'dropAll' was executed successfully.