Änderungen

Zur Navigation springen Zur Suche springen
1.856 Bytes hinzugefügt ,  21:53, 27. Mai 2023
Zeile 6: Zeile 6:  
Supabase läuft (fast) genauso wie in der hosted Version auf supabase.com auch auf dem lokalen Rechner.
 
Supabase läuft (fast) genauso wie in der hosted Version auf supabase.com auch auf dem lokalen Rechner.
   −
Es lässt sich z.B. folgendermaßen starten  
+
Es lässt sich z.B. mit [[npx]] folgendermaßen starten  
 
   npx supabase start
 
   npx supabase start
   Zeile 14: Zeile 14:  
   npx supabase start --exclude "gotrue,realtime,storage-api,imgproxy,kong,inbucket,postgrest,pgadmin-schema-diff,migra,postgres-meta,studio,deno-relay"
 
   npx supabase start --exclude "gotrue,realtime,storage-api,imgproxy,kong,inbucket,postgrest,pgadmin-schema-diff,migra,postgres-meta,studio,deno-relay"
    +
In dem Fall läuft dann tatsächlich nur [[Postgres]]. Will man doch ein bisschen arbeiten, könnte folgender Befehl passen:
 +
  npx supabase start --exclude "realtime,storage-api,imgproxy,inbucket,pgadmin-schema-diff"
 +
 +
<code>gotrue</code> ist für den API-Key notwendig. Dieser wird beim Start von supabase sonst nicht angezeigt.
 +
 +
Mit
 +
  npx supabase stop
 +
hält man die lokalen Container an.
 +
 +
== Verbindung mit hosted Supabase ==
 +
 +
  npx supabase login
 +
  npx supabase link
 +
 +
=== Übernehmen des Inhalts der Remote-Database in die lokale Umgebung ===
 +
 +
  npx supabase db remote commit
 +
  npx supabase db reset
 +
 +
=== Änderungen der lokalen Umgebung in die Hosted Database ===
 +
 +
 +
Zunächst Änderungen in der lokalen Datenbank vornehmen und dann
 +
diese Änderung in einer "Migration" speichern:
 +
  npx supabase db diff --file $DIFF_FILE_NAME
 +
 +
Schließlich diese Migration auf supabase.com "pushen":
 +
  npx supabase db push --dry-run
 +
  npx supabase db push
 +
 +
== Troubleshooting ==
 +
 +
=== Zugriff auf eigenes Schema / Namespace ===
 +
 +
Siehe https://stackoverflow.com/questions/73281996/how-to-access-custom-schema-from-supabase-js-client
 +
 +
Da es die API Settings im lokalen Supabase wohl nicht gibt, muss man durch [https://github.com/orgs/supabase/discussions/6682 einen Workaround das Schema freigeben]:
 +
 +
  alter role authenticator set pgrst.db_schemas = 'public, storage, sharebudget';
 +
  select pg_notify('pgrst', 'reload config');
 +
  select pg_notify('pgrst', 'reload schema');
 +
 +
Beim Nutzen von supabase db diff ist es dann meist sinnvoll, den --schema (-s)-Parameter zu setzen.
 +
 +
Siehe zur lokalen Entwicklung mit Schema auch: https://github.com/orgs/supabase/discussions/10428
 +
 +
== Backup der Postgres-Database ==
 +
 +
Zum Backup nutzt man das Standard-[[Postgres]]-Tool pg_dump.
 +
 +
Siehe
 +
* https://ironeko.com/posts/creating-a-local-backup-of-a-supabase-database
    
== Serverless Functions ==
 
== Serverless Functions ==

Navigationsmenü