Created
July 1, 2025 14:03
-
-
Save darko-mesaros/e9dd624c4125662ff7af6d10bf6dc102 to your computer and use it in GitHub Desktop.
sqlx migration with Postgres and DSQL - justfile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Database migration targets | |
# Show available recipes | |
default: | |
@echo "Available recipes:" | |
@echo " just migrate dsql - Run migrations for DSQL" | |
@echo " just migrate pgres - Run migrations for PostgreSQL" | |
@echo " just clean-migrations - Clean the migrations directory" | |
# Clean migrations directory | |
clean-migrations: | |
@echo "Cleaning migrations directory..." | |
rm -rf migrations/* | |
mkdir -p migrations | |
# Copy variant-specific migration files and run migrations | |
migrate variant: (clean-migrations) | |
@echo "Copying {{variant}} migration files..." | |
@if [ "{{variant}}" = "dsql" ]; then \ | |
for file in mig_variants/DSQL_*; do \ | |
if [ -f "$file" ]; then \ | |
basename="$(basename "$file")"; \ | |
newname="${basename#DSQL_}"; \ | |
cp "$file" "migrations/$newname"; \ | |
fi; \ | |
done; \ | |
if [ -z "$(ls migrations/ 2>/dev/null)" ]; then \ | |
echo "Warning: No DSQL_ files found in mig_variants/"; \ | |
fi; \ | |
elif [ "{{variant}}" = "pgres" ]; then \ | |
for file in mig_variants/PGRES_*; do \ | |
if [ -f "$file" ]; then \ | |
basename="$(basename "$file")"; \ | |
newname="${basename#PGRES_}"; \ | |
cp "$file" "migrations/$newname"; \ | |
fi; \ | |
done; \ | |
if [ -z "$(ls migrations/ 2>/dev/null)" ]; then \ | |
echo "Warning: No PGRES_ files found in mig_variants/"; \ | |
fi; \ | |
else \ | |
echo "Error: Unknown variant '{{variant}}'. Use 'dsql' or 'pgres'"; \ | |
exit 1; \ | |
fi | |
@echo "Migration files copied:" | |
@ls -la migrations/ || echo "No files copied" | |
@echo "Running sqlx migrate run..." | |
sqlx migrate run |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment