{
  "description": "Deploy or revert database changes, or add a new change to the plan. Other subcommands (init, tag, rebase, bundle, status, verify) are not covered.",
  "name": "sqitch",
  "subcommands": [
    {
      "name": "deploy",
      "description": "Deploy changes from the plan to a target database. Positional target and change arguments are left out; use the target and to-change fields.",
      "options": [
        {
          "names": [
            "--target",
            "-t"
          ],
          "description": "A database URI or the name of a configured target.",
          "args": {
            "name": "target",
            "description": "A database URI or the name of a configured target.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--to-change",
            "--change",
            "--to"
          ],
          "description": "Defaults to the last point in the plan.",
          "args": {
            "name": "to_change",
            "description": "Defaults to the last point in the plan.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--mode"
          ],
          "description": "Failure reversion mode",
          "args": {
            "name": "mode",
            "isOptional": false,
            "suggestions": [
              {
                "name": "all",
                "description": "Revert everything deployed (default)"
              },
              {
                "name": "tag",
                "description": "Revert to last applied tag"
              },
              {
                "name": "change",
                "description": "Do not revert deploy failures"
              }
            ]
          }
        },
        {
          "names": [
            "--verify"
          ],
          "description": "Verify each change"
        },
        {
          "names": [
            "--no-verify"
          ],
          "description": "Verify each change"
        },
        {
          "names": [
            "--log-only"
          ],
          "description": "Record changes as deployed without running the deploy scripts."
        },
        {
          "names": [
            "--set",
            "-s"
          ],
          "description": "One name=value per entry.",
          "args": {
            "name": "set",
            "description": "One name=value per entry.",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--lock-timeout"
          ],
          "description": "Lock timeout (seconds)",
          "args": {
            "name": "lock_timeout",
            "isOptional": false
          }
        }
      ]
    },
    {
      "name": "revert",
      "description": "Revert deployed changes from a target database. Positional arguments are left out.",
      "options": [
        {
          "names": [
            "--target",
            "-t"
          ],
          "description": "Target",
          "args": {
            "name": "target",
            "isOptional": false
          }
        },
        {
          "names": [
            "--to-change",
            "--change",
            "--to"
          ],
          "description": "Defaults to reverting all changes.",
          "args": {
            "name": "to_change",
            "description": "Defaults to reverting all changes.",
            "isOptional": false
          }
        },
        {
          "names": [
            "--modified",
            "-m"
          ],
          "description": "Revert to earliest modified change"
        },
        {
          "names": [
            "--log-only"
          ],
          "description": "Log only",
          "isDangerous": true
        },
        {
          "names": [
            "-y"
          ],
          "description": "Skip confirmation prompt",
          "isDangerous": true
        }
      ]
    },
    {
      "name": "add",
      "description": "Add a new change and its deploy, revert and verify scripts to the plan.",
      "options": [
        {
          "names": [
            "--change",
            "-c",
            "--change-name"
          ],
          "description": "Change name",
          "args": {
            "name": "change",
            "isOptional": false
          }
        },
        {
          "names": [
            "--requires",
            "-r"
          ],
          "description": "Required changes",
          "args": {
            "name": "requires",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--conflicts",
            "-x"
          ],
          "description": "Conflicting changes",
          "args": {
            "name": "conflicts",
            "isOptional": false,
            "isVariadic": true
          },
          "isRepeatable": true
        },
        {
          "names": [
            "--note",
            "-n"
          ],
          "description": "Note",
          "args": {
            "name": "note",
            "isOptional": false
          }
        },
        {
          "names": [
            "--edit",
            "-e"
          ],
          "description": "Open scripts in editor"
        },
        {
          "names": [
            "--no-edit"
          ],
          "description": "Open scripts in editor"
        }
      ]
    }
  ]
}
