Files
Alex_Portfolio/backend/seed_supabase.py
T

32 lines
916 B
Python

from __future__ import annotations
import json
import os
from pathlib import Path
from dotenv import load_dotenv
from supabase import create_client
BASE_DIR = Path(__file__).resolve().parent
def main() -> None:
load_dotenv(BASE_DIR / ".env")
url = os.getenv("SUPABASE_URL", "").strip()
key = (
os.getenv("SUPABASE_SECRET_KEY", "").strip()
or os.getenv("SUPABASE_SERVICE_ROLE_KEY", "").strip()
)
table = os.getenv("SUPABASE_ARTICLES_TABLE", "articles").strip()
if not url or not key:
raise SystemExit("Add SUPABASE_URL and SUPABASE_SECRET_KEY to backend/.env first.")
posts = json.loads((BASE_DIR / "data" / "posts.json").read_text(encoding="utf-8"))
response = create_client(url, key).table(table).upsert(posts, on_conflict="slug").execute()
print(f"Seeded {len(response.data or [])} articles into {table}.")
if __name__ == "__main__":
main()