id = "flyway"
name = "Flyway"
homepage = "https://documentation.red-gate.com/flyway"
description = "Database version control to control migrations"
executables = ["flyway"]
[dotfiles]
paths = []
secret = ["~/flyway.conf"]
[commands]
format = 1
label = "Flyway"
description = "Run one Flyway migration command against a JDBC URL. Passwords, Teams-only commands (undo) and the many -key=value settings beyond url, user, schemas and locations are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "cli-docs"
kind = "manual"
url = "https://raw.githubusercontent.com/flyway/flywaydb.org/gh-pages/documentation/usage/commandline/index.md"
revision = "2026-10-27"
evidence = """
> flyway [options] command
> flyway -user=myuser -schemas=schema1,schema2 -placeholders.keyABC=valueXYZ migrate
> flyway info -url="jdbc:snowflake://ab12345.snowflakecomputing.com/?db=demo_db&user=foo"
> flyway -configFiles=path/to/myAlternativeConfig.conf migrate
the `-n` flag.
migrate Migrates the database
clean Drops all objects in the configured schemas
info Prints the details and status information about all the migrations
validate Validates the applied migrations against the ones available on the classpath
baseline Baselines an existing database, excluding all migrations up to and including baselineVersion
repair Repairs the schema history table
"""
[[commands.field]]
id = "url"
label = "JDBC URL"
type = "string"
option = ["-url"]
value_style = "equals"
sources = ["cli-docs"]
[[commands.field]]
id = "user"
label = "Database user"
type = "string"
option = ["-user"]
value_style = "equals"
sources = ["cli-docs"]
[[commands.field]]
id = "schemas"
label = "Schemas"
description = "Comma-separated schema names."
type = "string"
option = ["-schemas"]
value_style = "equals"
sources = ["cli-docs"]
[[commands.field]]
id = "config_files"
label = "Config files"
type = "path"
option = ["-configFiles"]
value_style = "equals"
path = { kind = "file", role = "input", must_exist = true }
sources = ["cli-docs"]
[[commands.field]]
id = "no_prompt"
label = "Do not prompt for credentials"
type = "boolean"
option = ["-n"]
sources = ["cli-docs"]
[[commands.field]]
id = "command"
label = "Command"
description = "clean drops every object in the configured schemas."
type = "enum"
position = 0
choices = [
{ value = "migrate", label = "migrate" },
{ value = "info", label = "info" },
{ value = "validate", label = "validate" },
{ value = "baseline", label = "baseline" },
{ value = "repair", label = "repair" },
{ value = "clean", label = "clean (drops all objects)" },
]
sources = ["cli-docs"]
[[commands.task]]
id = "migrate"
label = "Migrate the database"
fields = ["command", "url", "user", "schemas", "config_files", "no_prompt"]
required = ["command"]
set = { command = ["migrate"] }
[[commands.task]]
id = "info"
label = "Show migration status"
fields = ["command", "url", "user", "schemas", "config_files", "no_prompt"]
required = ["command"]
set = { command = ["info"] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["command", "url", "user", "schemas", "config_files", "no_prompt"]