Simple forward-only SQLite migration tool for Bun
AGPL-3.0 License
Migralite is lightweight forward-only SQLite migration tool for Bun.
Key features:
Add CLI tool to the Bun based project:
bun add -d migralite
And then used via package.json
scripts:
{
"scripts": {
"db:migrate": "migralite --database ./path/to/db.sqlite"
}
}
The tool could be used with bunx
without adding it to the project:
bunx migralite --help
--help
or -h
— shows help in the terminal.
Example:
bunx migralite --help
--version
or -v
— shows current version of the CLI tool.
Example:
bunx migralite --version
--database
or -d
— path to the SQLite database file.
Example:
bunx migralite -d ./db/main.sqlite
--migrations
or -m
— path to the folder with SQL migration scripts, by default it's ./migrations
folder in the
root of the project.
Example:
bunx migralite -d ./db/main.sqlite -m ./db/migrations
--generate
or -g
— migration file generation mode. It accepts short summary of what migration script is doing to
generate migration name. The summary is added as a comment to the migration script.
Example:
bunx migralite -g "Create users table"
This will create a migration file in ./migrations
folder called ./migrations/20240815123456__create-users-table.sql
.
Only this filename format is accepted by the migration tool. Anything else will result in error and migrations won't run.
To install dependencies:
bun install
To run:
bun run index.ts
Please raise an issue first and let's discuss. This project is pretty much done, but I am still open for some sensible contributions.
Logo by https://www.behance.net/garnenka
Code is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 only.