Skip to content

Installation

Run the install script:

Terminal window
curl -fsSL https://raw.githubusercontent.com/struckchure/axel/main/scripts/install.sh | bash

The script places the axel binary in ~/.local/bin (Linux) or /usr/local/bin (macOS) and adds it to your PATH.

Verify the installation:

Terminal window
axel version

Open PowerShell and run:

Terminal window
irm https://raw.githubusercontent.com/struckchure/axel/main/scripts/install.ps1 | iex

The script downloads the binary to %LOCALAPPDATA%\axel\ and adds it to your user PATH.

Restart your terminal, then verify:

Terminal window
axel version

Requires Go 1.21+.

Terminal window
git clone https://github.com/struckchure/axel.git
cd axel
go build -o axel ./cmd

Move the binary somewhere on your PATH:

Terminal window
mv axel /usr/local/bin/axel # macOS / Linux

Create an axel.yaml in your project directory:

database-url: postgres://user:pass@localhost:5432/mydb
schema-path: ./schema.asl
migrations-dir: ./migrations

Run commands directly in your project folder:

Terminal window
axel validate
axel up

If your project is in a different directory, pass --dir (or -d):

Terminal window
axel -d ./myproject validate

Discovery order inside project directory:

  1. axel.yaml — loaded as the full config if found
  2. schema.asl — used as the schema if no axel.yaml
  3. default.asl — fallback schema filename

You can also set the database URL via an environment variable:

Terminal window
export DATABASE_URL=postgres://user:pass@localhost:5432/mydb
axel up