Complete initial setup: dependencies, Prisma fixes, and database setup guides
- Install backend and frontend dependencies - Fix Prisma schema BigInt default values - Generate Prisma client - Create database setup script and documentation - Add DATABASE_SETUP.md guide
This commit is contained in:
131
DATABASE_SETUP.md
Normal file
131
DATABASE_SETUP.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# Database Setup Guide
|
||||
|
||||
This guide helps you set up the PostgreSQL database for ASLE backend.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- PostgreSQL 15+ installed and running
|
||||
- Access to create databases
|
||||
|
||||
## Quick Setup
|
||||
|
||||
### Option 1: Using Docker (Recommended)
|
||||
|
||||
```bash
|
||||
# Start PostgreSQL container
|
||||
docker-compose up -d postgres
|
||||
|
||||
# The database will be created automatically with:
|
||||
# - User: asle
|
||||
# - Password: asle_password
|
||||
# - Database: asle
|
||||
```
|
||||
|
||||
Update `backend/.env`:
|
||||
```env
|
||||
DATABASE_URL="postgresql://asle:asle_password@localhost:5432/asle?schema=public"
|
||||
```
|
||||
|
||||
### Option 2: Local PostgreSQL
|
||||
|
||||
1. **Create database:**
|
||||
```bash
|
||||
# As postgres superuser
|
||||
sudo -u postgres psql -c "CREATE DATABASE asle;"
|
||||
|
||||
# Or create a user first
|
||||
sudo -u postgres psql -c "CREATE USER asle WITH PASSWORD 'your_password';"
|
||||
sudo -u postgres psql -c "CREATE DATABASE asle OWNER asle;"
|
||||
```
|
||||
|
||||
2. **Update `backend/.env`:**
|
||||
```env
|
||||
DATABASE_URL="postgresql://asle:your_password@localhost:5432/asle?schema=public"
|
||||
```
|
||||
|
||||
### Option 3: Using Existing PostgreSQL
|
||||
|
||||
If you have PostgreSQL running with different credentials:
|
||||
|
||||
1. **Create database:**
|
||||
```bash
|
||||
psql -U your_user -c "CREATE DATABASE asle;"
|
||||
```
|
||||
|
||||
2. **Update `backend/.env`:**
|
||||
```env
|
||||
DATABASE_URL="postgresql://your_user:your_password@localhost:5432/asle?schema=public"
|
||||
```
|
||||
|
||||
## Running Migrations
|
||||
|
||||
After setting up the database:
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
|
||||
# Generate Prisma client
|
||||
npm run prisma:generate
|
||||
|
||||
# Run migrations
|
||||
npm run prisma:migrate
|
||||
|
||||
# Initialize database with default configs
|
||||
npm run setup:db
|
||||
|
||||
# Create admin user
|
||||
npm run setup:admin
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Authentication Failed
|
||||
|
||||
If you see `Authentication failed`:
|
||||
|
||||
1. Check PostgreSQL is running:
|
||||
```bash
|
||||
pg_isready -h localhost -p 5432
|
||||
```
|
||||
|
||||
2. Verify credentials in `backend/.env`
|
||||
|
||||
3. Test connection:
|
||||
```bash
|
||||
psql $DATABASE_URL -c "SELECT version();"
|
||||
```
|
||||
|
||||
### Database Already Exists
|
||||
|
||||
If database already exists, migrations will still work:
|
||||
```bash
|
||||
npm run prisma:migrate
|
||||
```
|
||||
|
||||
### Permission Denied
|
||||
|
||||
If you get permission errors:
|
||||
```bash
|
||||
# Grant permissions
|
||||
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE asle TO your_user;"
|
||||
```
|
||||
|
||||
## Connection String Format
|
||||
|
||||
```
|
||||
postgresql://[user]:[password]@[host]:[port]/[database]?schema=public
|
||||
```
|
||||
|
||||
Examples:
|
||||
- `postgresql://postgres@localhost:5432/asle?schema=public` (no password)
|
||||
- `postgresql://asle:password@localhost:5432/asle?schema=public` (with password)
|
||||
- `postgresql://user:pass@db.example.com:5432/asle?schema=public` (remote)
|
||||
|
||||
## Next Steps
|
||||
|
||||
After database is set up:
|
||||
1. ✅ Run migrations
|
||||
2. ✅ Initialize database
|
||||
3. ✅ Create admin user
|
||||
4. ✅ Start backend: `npm run dev`
|
||||
|
||||
Reference in New Issue
Block a user