duburl validates versioned schema documents, renders deterministic SQL, and deploys schemas through the same application services used by other DubUrl hosts.

Connection-consuming commands share --tls, --ca-certificate (implies TLS), --connection-timeout, --command-timeout, --pooling, --pool-min-size, --pool-max-size, --pool-idle-timeout, --pool-max-lifetime, --application-name and --time-zone. See connection encryption and defaults for units, precedence, provider/platform support and examples. Unsupported options fail explicitly. --timeout on connection checks remains the overall check budget.

The framework-dependent tool and archives require a matching .NET runtime: .NET 8, 9, or 10 according to the target framework in the package or archive name. Windows installers currently target .NET 10.

Install

dotnet tool install --global DubUrl-cli
duburl --version

Validate and render

PowerShell:

duburl schema validate .\schema.yaml
Get-Content .\schema.json -Raw | duburl schema validate - --input-format json --output-format json
duburl schema render .\schema.yaml --dialect pgsql --output .\schema.sql

Bash:

duburl schema validate ./schema.yaml
cat ./schema.json | duburl schema validate - --input-format json --output-format json
duburl schema render ./schema.yaml --dialect pgsql --output ./schema.sql

SQL is written to standard output unless --output is supplied. Diagnostics and logs are written to standard error, so SQL and JSON output can be redirected safely.

Deploy safely

Choose how to sign in using CLI authentication. It links to database and operating-system support for each method.

Named connections are read from ConnectionStrings in DubUrl.Cli/appsettings.json or from environment-backed configuration. A connection can also be selected by environment-variable name, keeping credential-bearing URLs out of process arguments.

$env:DUBURL_PRODUCTION_URL = 'sqlite:///C:/data/production.db'
duburl schema deploy .\schema.yaml --connection-env DUBURL_PRODUCTION_URL --dry-run
duburl schema deploy .\schema.yaml --connection-env DUBURL_PRODUCTION_URL

--dry-run returns the exact rendered SQL without opening a connection. Dropping existing objects requires --drop-existing; non-interactive execution additionally requires --yes.

Automation

See Automate schema deployment for CI and Python examples.

Inspect an existing database

Use duburl schema inspect –connection source –basic –output schema.yaml to export visible tables. The command supports JSON/YAML, repeated qualified table filters, strict/partial inspection and separate stderr diagnostics. See inspection and export for the complete workflow and provider limits.