ezidam/crates/database/justfile

48 lines
1 KiB
Makefile
Executable file

#!/usr/bin/env just --justfile
database_dir := justfile_directory() + "/../../database"
database_file := "ezidam.sqlite"
database_path := database_dir / database_file
database_url := "sqlite://" + absolute_path(database_path)
sqlx_database := "--database-url " + database_url
cargo := "cargo"
# list recipes
default:
just --list
# prepare sql queries for offline usage
offline:
{{cargo}} sqlx prepare {{sqlx_database}}
# verify offline data is up to date
offline_check:
{{cargo}} sqlx prepare --check {{sqlx_database}}
# run pending migrations
run:
sqlx migrate run {{sqlx_database}}
# add new migration
new name:
sqlx migrate add -r {{name}}
# revert latest migration
revert_last:
sqlx migrate revert {{sqlx_database}}
# create database
create:
mkdir -p {{database_dir}}
sqlx database create {{sqlx_database}}
# reset database and apply migrations
reset:
mkdir -p {{database_dir}}
sqlx database reset {{sqlx_database}}
# create a build script to trigger recompilation when a new migration is added
build_script:
sqlx migrate build-script