{
  "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
    },
    "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\n> flyway -user=myuser -schemas=schema1,schema2 -placeholders.keyABC=valueXYZ migrate\n> flyway info -url=\"jdbc:snowflake://ab12345.snowflakecomputing.com/?db=demo_db&user=foo\"\n> flyway -configFiles=path/to/myAlternativeConfig.conf migrate\nthe `-n` flag.\nmigrate Migrates the database\nclean Drops all objects in the configured schemas\ninfo Prints the details and status information about all the migrations\nvalidate Validates the applied migrations against the ones available on the classpath\nbaseline Baselines an existing database, excluding all migrations up to and including baselineVersion\nrepair Repairs the schema history table\n"
      }
    ],
    "field": [
      {
        "id": "url",
        "label": "JDBC URL",
        "type": "string",
        "option": [
          "-url"
        ],
        "value_style": "equals",
        "sources": [
          "cli-docs"
        ]
      },
      {
        "id": "user",
        "label": "Database user",
        "type": "string",
        "option": [
          "-user"
        ],
        "value_style": "equals",
        "sources": [
          "cli-docs"
        ]
      },
      {
        "id": "schemas",
        "label": "Schemas",
        "description": "Comma-separated schema names.",
        "type": "string",
        "option": [
          "-schemas"
        ],
        "value_style": "equals",
        "sources": [
          "cli-docs"
        ]
      },
      {
        "id": "config_files",
        "label": "Config files",
        "type": "path",
        "option": [
          "-configFiles"
        ],
        "value_style": "equals",
        "path": {
          "kind": "file",
          "role": "input",
          "must_exist": true
        },
        "sources": [
          "cli-docs"
        ]
      },
      {
        "id": "no_prompt",
        "label": "Do not prompt for credentials",
        "type": "boolean",
        "option": [
          "-n"
        ],
        "sources": [
          "cli-docs"
        ]
      },
      {
        "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"
        ]
      }
    ],
    "task": [
      {
        "id": "migrate",
        "label": "Migrate the database",
        "fields": [
          "command",
          "url",
          "user",
          "schemas",
          "config_files",
          "no_prompt"
        ],
        "required": [
          "command"
        ],
        "set": {
          "command": [
            "migrate"
          ]
        }
      },
      {
        "id": "info",
        "label": "Show migration status",
        "fields": [
          "command",
          "url",
          "user",
          "schemas",
          "config_files",
          "no_prompt"
        ],
        "required": [
          "command"
        ],
        "set": {
          "command": [
            "info"
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "command",
          "url",
          "user",
          "schemas",
          "config_files",
          "no_prompt"
        ]
      }
    ]
  }
}
