Files
dc-recorder/setup-postgres.sh
2026-05-14 14:44:01 +07:00

98 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# PostgreSQL Migration Quick Start Script
# Run this to set up PostgreSQL migration
set -e
echo "🚀 Discord Bot - PostgreSQL Migration Setup"
echo "==========================================="
echo ""
# Check if PostgreSQL is installed
if ! command -v psql &> /dev/null; then
echo "❌ PostgreSQL is not installed. Please install PostgreSQL first."
echo " macOS: brew install postgresql"
echo " Ubuntu: sudo apt-get install postgresql postgresql-contrib"
echo " Windows: Download from https://www.postgresql.org/download/windows/"
exit 1
fi
echo "✅ PostgreSQL found"
echo ""
# Check if Node.js is installed
if ! command -v node &> /dev/null; then
echo "❌ Node.js is not installed."
exit 1
fi
echo "✅ Node.js found"
echo ""
# Create .env if it doesn't exist
if [ ! -f .env ]; then
echo "📝 Creating .env file..."
cp .env.example .env
echo "⚠️ Please update .env with your PostgreSQL connection string"
echo " DATABASE_URL=postgresql://user:password@localhost:5432/discord_bot"
echo ""
fi
# Install dependencies
echo "📦 Installing dependencies..."
pnpm add pg pg-pool node-pg-migrate
pnpm add -D @types/pg @types/node-pg-migrate
pnpm remove better-sqlite3 @types/better-sqlite3 2>/dev/null || true
echo "✅ Dependencies installed"
echo ""
# Create database
read -p "Enter PostgreSQL username (default: postgres): " PG_USER
PG_USER=${PG_USER:-postgres}
read -p "Enter PostgreSQL password: " -s PG_PASSWORD
echo ""
read -p "Enter database name (default: discord_bot): " DB_NAME
DB_NAME=${DB_NAME:-discord_bot}
read -p "Enter PostgreSQL host (default: localhost): " PG_HOST
PG_HOST=${PG_HOST:-localhost}
read -p "Enter PostgreSQL port (default: 5432): " PG_PORT
PG_PORT=${PG_PORT:-5432}
echo ""
echo "🗄️ Creating database..."
PGPASSWORD=$PG_PASSWORD psql -h $PG_HOST -U $PG_USER -p $PG_PORT -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" | grep -q 1 || \
PGPASSWORD=$PG_PASSWORD psql -h $PG_HOST -U $PG_USER -p $PG_PORT -c "CREATE DATABASE $DB_NAME"
echo "✅ Database created"
echo ""
# Update .env with connection string
DATABASE_URL="postgresql://$PG_USER:$PG_PASSWORD@$PG_HOST:$PG_PORT/$DB_NAME"
sed -i.bak "s|DATABASE_URL=.*|DATABASE_URL=$DATABASE_URL|" .env
rm -f .env.bak
echo "✅ .env updated with DATABASE_URL"
echo ""
# Run migrations
echo "🔄 Running migrations..."
npx node-pg-migrate up
echo "✅ Migrations completed"
echo ""
echo "🎉 PostgreSQL migration setup complete!"
echo ""
echo "Next steps:"
echo "1. Review the migration files in src/db/migrations/"
echo "2. Update imports in your code (see POSTGRES_IMPLEMENTATION.md)"
echo "3. Run: pnpm run typecheck"
echo "4. Run: pnpm run dev"
echo ""