Liquibase Secure Developer
The official Liquibase Secure Developer VS Code extension simplifies creating Liquibase resources and running local Liquibase operations in preparation for automated or pipeline operations at scale, without directly interacting with the command line.
Both expert and new Liquibase users with a Liquibase License Key can easily accomplish TWO key tasks with this extension:
Create Liquibase resources, such as changelogs, changesets, changetypes, defaults files, flow files, policy checks files and more in all supported formats of Formatted SQL
, XML
, JSON
and YAML
Run Liquibase operations, such status and validation checks, updates, rollbacks, drift detection, generate changelogs, and more.
The official Liquibase Secure Developer extension for VS Code enables Devs and other data change makers to treat database code like app code, with no context switching, and quickly realize the benefits of Liquibase: standardized database changes across the pipeline, governance and guardrails, policy enforcement, audit trails, and much much more.
Minimum Requirements
The extension auto-integrates with new and current Liquibase projects, uses existing properties files, changelogs, Env Vars and more. It requires only three pieces of information, all auto-detected from Liquibase defaults files, Environment Variables, or $PATH settings, or directly set in the extension’s Settings page:
- LIQUIBASE_HOME
- JAVA_HOME
- LIQUIBASE_LICENSE_KEY
The extension works with
- Liquibase Secure 5.0+
- Liquibase Pro 4.24.0+
- OpenJDK compatible 17+
- Microsoft VS Code
Getting started
If you are new to Liquibase, please take a moment to review the Getting Started, Implementation, or Integration guides at https://docs.liquibase.com for an overview of Liquibase capabilities and configuration requirements.
If you already have a Liquibase project, install this extension and Open Folder…
to the root project folder. Liquibase will detect the 3 required properties listed above, or it will open the Installation wizard to help you get started.
(/media/walkthrough/liquibase-secure-developer-install-wizard.png)
Creating resources or running commands with Liquibase Secure Developer VS Code extension
Creating resources or running commands requires Liquibase properties (ie, global and command arguments) to be set. These can be set in a Defaults file, Environment Variables, and as run-time values input into the integrated command-palette wizard/walkthrough.
You can use a defaults file to store the information that Liquibase needs to connect to a particular database, along with other properties that rarely change. Use the Create
or Register
a Defaults file (also known as a liquibase.properties
file) to store these property values.
Creating, Register, or Edit a Defaults File [optional]
- Generate a new defaults file via the
Liquibase: Create Defaults file
command.
- Edit an existing defaults file via the
Liquibase: Edit existing Defaults file
command.
- Register an existing file via the
Liquibase: Register existing file
command.
These commands can be reached via the command palette or by opening the context menu to Create Resources
submenu.
NOTE: This file often contains critical information about your URL (eg, JDBC database connection string) and connection such as username or password. Best practice is to use the appropriate Secrets Vaults configurations in the defaults file. So, add defaults files to your version control system WITH CAUTION. These files often contain sensitive information so they are better added to your .gitignore
.
Executing Liquibase commands
All commands can be run from the extensions’ context menu or the command-palette bar (MAC: CMD+SHIFT+P
/ Windows: CTRL+SHIFT+P
). The context menu is available by right-clicking anywhere within a XML. YAML, JSON, or formatted SQL changelog file, defaults file, flow file, or other key Liquibase resource file. The command-palette is reached with the keyboard shortcut on MAC: CMD+SHIFT+P
/ Windows: CTRL+SHIFT+P
Supported Liquibase Commands
Every command which needs a changelogfile can be executed by right clicking on the body of the open changelogfile to open the context menu, or by clicking the file title in the left-side Explorer. The commands available in the context menu are the update
family including status
and validate
, the rollback
family, flow
, and checks
commands and many more.
Currently, the following Liquibase commands are supported:
Liquibase Commands Menu
Create Resources
Create Defaults file (liquibase.properties)
Edit existing Defaults file
Register existing file…
Create Changelogs
- Formatted SQL changelog
- JSON changelog
- XML changelog
- YAML changelog
- Get Help: Changelogs...
Create Changeset
Get Help: Changesets
Create an example Flow file (basic)...
Create example Flow file (advanced)...
Create Policy Checks file (default set)...
Get Help: Creating Resources
Update
List pending updates... (status command)
Validate root and child changelogs (validate command)
Update command (customize)...(update command)
Update command (use existing defaults)(update command)
Update one changeset...(update-one-changeset command)
Update specific count of changesets... (update-count command)
Update to tag... (update-to-tag command)
Update testing rollback (update-testing-rollback command)
Update SQL Previews
- Preview update SQL (update-sql command)
- Preview update-count SQL... (update-count-sql command)
- Preview update-to-tag SQL... (update-to-tag-sql command)
- Get Help: Update SQL
List all activities (DBCL-History table)... (dbclhistory command)
List past updates (DBCL table)... (history command)
Get Help: Updates
Rollbacks
Rollback changes to a tag... (rollback-to-tag command)
Rollback one changeset... (rollback-one-changeset command)
Rollback one update... (rollback-one-update command)
Rollback number of changesets... (rollback-count command)
Rollback to specific date... (rollback-to-date command)
Preview Rollback SQL
- Preview rollback to tag SQL... (rollback-to-tag-sql command)
- Preview rollback-one-changeset SQL... (rollback-one-changeset-sql command)
- Preview rollback-one-update SQL... (rollback-one-update-sql command)
- Preview rollback-count SQL... (rollback-count-sql command)
- Preview rollback-to-date SQL... (rollback-to-date-sql command)
- Preview future rollback SQL (future-rollback-sql command)
- Preview future rollback count SQL (future-rollback-count-sql command)
- Get Help: Future Rollback SQL
Get Help: Rollback
Policy Checks
Flow
- Flow command (customize)...(flow command)
- Flow command (default flowfile) (flow command)
- Validate flow files... (flow validate command)
- Generate new flow file...
- Set default flowfile...
- Get Help: Flow
Additional Commands
Init Commands
- Init Project... (init-project command)
- Init Start H2 Database... (start-h2 command)
- Get Help: Init Commands
Database Inspection Commands
- Generate changelog of target database (--url)... (generate-changelog command)
- Compare two databases or snapshot files... (diff command)
- Generate diff-changelog of target & source databases... (diff-changelog command)
- Capture snapshot of source database (--reference-url)... (snapshot-reference command)
- Capture snapshot of target database (--url)... (snapshot command)
- Get Help: Database Inspection Commands
Change Tracking Commands
Utility Commands
Policy Checks Commands
Flow Commands
Observability
Get Help: Reports
DBCL-History table
- Disable DBCL-History table
- Enable DBCL-History table
- Setup DBCL-History table...
- Get Help: DBCL-History table
Report Settings
- Disable All Reports
- Enable All Reports
- Enable only select reports...
- Set report name...
- Set reports path...
Set log level
- 1 - Off
- 2 - Severe (least verbose)
- 3 - Warning
- 4 - Info
- 5 - Fine (most verbose)
- Get Help: Log levels
Structured Logging
- Disable Structured Logs
- Enable Structured Logs...
- Setup custom structured logging...
- Get Help: Structured Logs
Extensions
- AWS Extension help
- Azure Extension help
- DynamoDB Extension help
- Hashicorp Vault Extension help
- MongoDB Extension help
- Unsupported Community Extensions
- Get Help: Extensions
Settings & Feedback
Observability and logs
Liquibase's Observability capabilities, such as DBCL
and DBCL-History
tables, Update/Rollback/Checks/Drift Reports, Structured Logs and LogLevel settings can be managed through the context menu's Observability
sub-menu.
This extension generates logs which can be viewed in the Output tab, which can be opened with the command Output: Focus on Output View
and then selecting the Liquibase
channel.
Logs will be also written to a log folder on your OS. Open the log folder via the command-palette with Developer: Open Extension Logs Folder
and then opening the Liquibase.secure-developer-vscode
directory.
Original Code Credit
This extension was created as a fork from code under the MIT License available at https://github.com/aditosoftware/vscode-liquibase
Copyright (c) 2024 ADITO Software GmbH http://www.adito.de
Liquibase Secure Developer VS Code extension code
Copyright (c) 2025 Liquibase http://www.liquibase.com
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.