Files
Portfolio/supabase/APPLY_MIGRATION.md
damjan_savicandClaude Opus 4.5 e1bbe5455d Initial commit: Portfolio Website
Vollständige Next.js 15 Portfolio-Website mit:
- Blog-System mit 100+ Artikeln
- Supabase-Integration
- Responsive Design mit Tailwind CSS
- TypeScript-Konfiguration
- Testing-Setup mit Vitest und Playwright

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 15:07:20 +01:00

120 lines
2.9 KiB
Markdown

# How to Apply the Rate Limits Migration
## Quick Start (Manual Application)
Since the Supabase CLI is not configured for this project, please follow these steps to apply the migration manually through the Supabase dashboard:
### Step 1: Access the SQL Editor
Open the Supabase SQL Editor in your browser:
```
https://app.supabase.com/project/mxadgucxhmstlzsbgmoz/sql
```
### Step 2: Copy the Migration SQL
Open the migration file:
```
supabase/migrations/20260125_create_rate_limits_table.sql
```
Copy the entire contents (approximately 42 lines of SQL).
### Step 3: Execute the Migration
1. In the SQL Editor, paste the copied SQL
2. Click the **"RUN"** button (or press `Ctrl+Enter` / `Cmd+Enter`)
3. Wait for the success message: "Success. No rows returned"
### Step 4: Verify the Table Was Created
**Option A: Using Table Editor**
1. Navigate to: https://app.supabase.com/project/mxadgucxhmstlzsbgmoz/editor
2. Look for **"rate_limits"** in the table list (left sidebar)
3. Click on it to see the table structure
**Option B: Using SQL Query**
Run this query in the SQL Editor:
```sql
SELECT
table_name,
column_name,
data_type,
is_nullable
FROM information_schema.columns
WHERE table_name = 'rate_limits'
ORDER BY ordinal_position;
```
You should see 5 rows (one for each column):
- identifier (text)
- count (integer)
- window_start (timestamp with time zone)
- created_at (timestamp with time zone)
- updated_at (timestamp with time zone)
**Option C: Check Indexes**
Run this query to verify indexes were created:
```sql
SELECT
indexname,
indexdef
FROM pg_indexes
WHERE tablename = 'rate_limits';
```
You should see:
- Primary key on (identifier, window_start)
- idx_rate_limits_identifier_window
- idx_rate_limits_window_start
## Troubleshooting
### Error: "relation 'rate_limits' already exists"
The table is already created! No action needed. Verify it exists using the verification steps above.
### Error: "permission denied"
Make sure you're:
1. Logged into the correct Supabase account
2. Have admin/owner permissions on the project
3. Using the correct project URL
### Table not visible in Table Editor
1. Refresh the page (F5)
2. Check the SQL output for error messages
3. Try the SQL verification query in Option B above
### Need to Revert/Drop the Table?
If you need to start over, run this SQL:
```sql
DROP TABLE IF EXISTS rate_limits CASCADE;
```
Then re-apply the migration from Step 1.
## Alternative: Automated Scripts
We've provided scripts for automated migration, but they require additional setup:
### Using apply-migration.js (requires service role key)
1. Add `SUPABASE_SERVICE_ROLE_KEY` to `.env.local`
2. Run: `node scripts/apply-migration.js`
### Using Supabase CLI (if installed)
```bash
supabase migration up
```
## Next Steps
After the migration is applied successfully:
1. ✅ Verify the table exists (see Step 4 above)
2. ✅ Mark this subtask as complete
3. ✅ Proceed to Phase 2: Building the rate limiting utility