801e6a050b
- Documentation archivée et réorganisée - Backend: Ajout tests, migrations, library service, rate limiting - Frontend: Suppression Flutter, focus sur interface web HTML/JS - Tailwind CSS ajouté pour le style - Améliorations UX et corrections bugs Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
151 lines
4.1 KiB
Bash
Executable File
151 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script to run Alembic migrations for AudiOhm backend
|
|
# Usage: ./run_migration.sh [command]
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Change to backend directory
|
|
cd "$(dirname "$0")"
|
|
|
|
echo -e "${GREEN}=== AudiOhm Alembic Migration Tool ===${NC}\n"
|
|
|
|
# Check if .env exists
|
|
if [ ! -f .env ]; then
|
|
echo -e "${RED}Error: .env file not found!${NC}"
|
|
echo "Please copy .env.example to .env and configure it first."
|
|
exit 1
|
|
fi
|
|
|
|
# Function to show help
|
|
show_help() {
|
|
echo "Usage: $0 [command]"
|
|
echo ""
|
|
echo "Commands:"
|
|
echo " current Show current migration version"
|
|
echo " history Show migration history"
|
|
echo " heads Show migration heads"
|
|
echo " status Show current status"
|
|
echo " upgrade Apply all pending migrations"
|
|
echo " upgrade+1 Apply next migration only"
|
|
echo " downgrade-1 Revert last migration"
|
|
echo " downgrade Revert all migrations (to base)"
|
|
echo " show [id] Show details of a migration"
|
|
echo " create Create a new migration (requires -m message)"
|
|
echo " sql-upgrade Show SQL for upgrade without executing"
|
|
echo " sql-downgrade Show SQL for downgrade without executing"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " $0 current"
|
|
echo " $0 upgrade"
|
|
echo " $0 downgrade-1"
|
|
echo " $0 create -m 'Add new table'"
|
|
echo " $0 show 001_add_library_tables"
|
|
echo ""
|
|
}
|
|
|
|
# Function to check if PostgreSQL is running
|
|
check_postgres() {
|
|
if ! pg_isready -h localhost -p 5432 > /dev/null 2>&1; then
|
|
echo -e "${YELLOW}Warning: PostgreSQL might not be running${NC}"
|
|
echo "Please start PostgreSQL service first"
|
|
return 1
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
# Parse command
|
|
case "$1" in
|
|
current)
|
|
echo "Showing current migration version..."
|
|
check_postgres
|
|
alembic current
|
|
;;
|
|
history)
|
|
echo "Showing migration history..."
|
|
alembic history
|
|
;;
|
|
heads)
|
|
echo "Showing migration heads..."
|
|
alembic heads
|
|
;;
|
|
status)
|
|
echo "Showing migration status..."
|
|
check_postgres
|
|
alembic current
|
|
echo ""
|
|
alembic heads
|
|
;;
|
|
upgrade)
|
|
echo -e "${YELLOW}Applying all pending migrations...${NC}"
|
|
check_postgres
|
|
alembic upgrade head
|
|
echo -e "${GREEN}✓ Migrations applied successfully!${NC}"
|
|
;;
|
|
upgrade+1)
|
|
echo -e "${YELLOW}Applying next migration...${NC}"
|
|
check_postgres
|
|
alembic upgrade +1
|
|
echo -e "${GREEN}✓ Migration applied successfully!${NC}"
|
|
;;
|
|
downgrade-1)
|
|
echo -e "${YELLOW}Reverting last migration...${NC}"
|
|
check_postgres
|
|
alembic downgrade -1
|
|
echo -e "${GREEN}✓ Migration reverted successfully!${NC}"
|
|
;;
|
|
downgrade)
|
|
echo -e "${RED}WARNING: This will revert ALL migrations!${NC}"
|
|
read -p "Are you sure? (yes/no): " confirm
|
|
if [ "$confirm" = "yes" ]; then
|
|
check_postgres
|
|
alembic downgrade base
|
|
echo -e "${GREEN}✓ All migrations reverted!${NC}"
|
|
else
|
|
echo "Aborted."
|
|
fi
|
|
;;
|
|
show)
|
|
if [ -z "$2" ]; then
|
|
echo "Error: Please provide a migration ID"
|
|
echo "Usage: $0 show <migration_id>"
|
|
exit 1
|
|
fi
|
|
echo "Showing migration details for: $2"
|
|
alembic show "$2"
|
|
;;
|
|
create)
|
|
shift
|
|
echo "Creating new migration..."
|
|
alembic revision "$@"
|
|
echo -e "${GREEN}✓ New migration file created!${NC}"
|
|
echo "Edit the file in alembic/versions/ and then run: $0 upgrade"
|
|
;;
|
|
sql-upgrade)
|
|
echo "Showing SQL for upgrade (not executing)..."
|
|
check_postgres
|
|
alembic upgrade head --sql
|
|
;;
|
|
sql-downgrade)
|
|
echo "Showing SQL for downgrade (not executing)..."
|
|
check_postgres
|
|
alembic downgrade -1 --sql
|
|
;;
|
|
help|--help|-h)
|
|
show_help
|
|
;;
|
|
*)
|
|
echo -e "${RED}Error: Unknown command '$1'${NC}\n"
|
|
show_help
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo ""
|