Skip to content

Instantly share code, notes, and snippets.

@darko-mesaros
Created July 1, 2025 14:03
Show Gist options
  • Save darko-mesaros/e9dd624c4125662ff7af6d10bf6dc102 to your computer and use it in GitHub Desktop.
Save darko-mesaros/e9dd624c4125662ff7af6d10bf6dc102 to your computer and use it in GitHub Desktop.
sqlx migration with Postgres and DSQL - justfile
# 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