AOSSIE-Org / AOSSIE-Org/InPactAI

BUG: Fix SQL schema issues (USER-DEFINED, FK order, duplicate blocks, triggers) + missing SUPABASE_JWT_SECRET in .env.example

Offen
#191 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
102
Forks
144
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Is there an existing issue for this?

- [x] I have searched the existing issues

### What happened?

## 📌 Issue Overview
While setting up the project locally, several schema-related issues cause SQL migrations to fail and the local environment to become unusable without manual fixes. In addition, one required environment variable (SUPABASE_JWT_SECRET) is missing from .env.example.

This makes the project difficult to set up for contributors.

## 🔍 Steps to Reproduce
1. Clone the repository
2. Run the provided SQL schema in Supabase or a local PostgreSQL instance
3. Attempt to run the app using .env.example
4. Observe multiple SQL errors and a runtime permission error

## 🎯 Expected Behavior
- Schema should apply cleanly without manual corrections
- No duplicate table or trigger definitions
- Foreign key references should resolve in proper order
- Enum types should be valid PostgreSQL types
- `.env.example` should include all required variables
- Local environment should work without “permission denied” errors

## 🚨 Actual Behavior
1. Invalid Enum Type Usage**

Several tables use this invalid syntax:

```sql
status USER-DEFINED DEFAULT 'value'::some_enum
```

This causes:

```
ERROR: syntax error at or near "USER"
```

### **2. Duplicate Table / Trigger Definitions**

- `proposals` table is defined twice

- `update_proposals_updated_at` function + trigger are defined twice
Causes:

```
ERROR: trigger "update_proposals_updated_at" already exists
```

### **3. Incorrect Table Creation Order**

Some tables reference others before they exist. Example:

```
FOREIGN KEY (user_id) REFERENCES public.profiles(id)
```

but `public.profiles` is created later.
Causes:

```
ERROR: relation "public.profiles" does not exist
```

### **4. Permission Errors After Schema Load**

After migrations succeed, creating a profile fails with:

```
permission denied for schema public
```

GRANT statements appear to be missing for `anon`, `authenticated`, and `service_role`.

### **5. Missing Required Env Variable**

`.env.example` is missing:

```
SUPABASE_JWT_SECRET=
```

This prevents the local app from running correctly.

## 📷 Screenshot
(Not included here, but can be added if maintainers want visual logs.)

## 💡 Suggested Improvements
1. Replace all `USER-DEFINED` placeholders with the actual enum types (`application_status`, `invite_status`, `payment_status`, `deal_status`).

2. Remove duplicate `proposals` table + duplicate trigger/function definitions.

3. Reorder tables so referenced tables exist before foreign keys are applied.

4. Add missing permissions back to the schema setup:

```sql
GRANT USAGE ON SCHEMA public TO anon, authenticated, service_role;
GRANT ALL ON ALL TABLES IN SCHEMA public TO service_role;
```

5. Add missing variable to `.env.example`:

```env
SUPABASE_JWT_SECRET=
```

I’m willing to submit a PR addressing these issues.

### Record

- [x] I agree to follow this project's Code of Conduct
- [x] I want to work on this issue

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.