sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur har man fullständig offlinefunktionalitet i en webbapp med PostgreSQL-databas?

Kort svar:Jag känner inte till något liknande som finns för närvarande.

Men i teorin skulle detta kunna fås att fungera...(långt svar:)

  1. Skriv en PostgreSQL-backend för levelup (en finns för MySQL:https://github.com/kesla/mysqldown)
  2. Koppla ihop pouch-server för att läsa/skriva från din PostgreSQL-db med hjälp av pouchdbs befintliga leveldb-adapter (som i sin tur måste konfigureras för att använda din postgres-backend). Grattis, du kan nu synkronisera data med PouchDB!

Huruvida ett tillvägagångssätt som detta är praktiskt i verkligheten för din ansökan är en annan fråga du måste svara på.

Du kanske undrar, till exempel, "kommer jag att kunna synkronisera ett befintligt komplext schema med flera tabeller till klienten med detta tillvägagångssätt?" Svaret är förmodligen inte - mysqldown-implementeringen av leveldown använder en enda MySQL-tabell med tre fält:id , key och value (källa), och jag föreställer mig att alla allmänna PostgreSQL-adapters skulle vara liknande (ingenting säger att du inte kan göra en specialadapter bara för din app!).

Å andra sidan, om du skulle implementera ett couchdb-kompatibelt API (eller en delmängd - du kanske inte behöver bilagor, till exempel) över ditt befintliga databasschema, finns det inget som hindrar dig från att använda PouchDB på klienten för att prata direkt med det som om det vore en verklig CouchDB - lägg bara in URL:en och ring replicate() ! Att implementera replikeringsprotokollet kan vara lite jobbigt, eftersom du skulle behöva spåra revisioner och så vidare någonstans - men återigen, tekniskt sett inte omöjligt!

Det finns även implementeringar av levelups backend-lagring som är designade för webbläsare. Se level.js, som kan vara ett annat sätt att synkronisera mellan en Postgres levelup-backend på serversidan och webbläsaren.

TL;DR :Det pågår massor av arbete kring Javascript-databaser just nu. Är det omöjligt att synkronisera med Postgres? antagligen inte. Skulle det vara mycket jobb? Definitivt. Värt det? Vem vet, men det skulle vara coolt.



  1. Formatera data i Power BI Desktop Visualizations

  2. SQL Server DATEPART() vs DATENAME() – Vad är skillnaden?

  3. Ogiltigt gemensamt användar- eller rollnamn

  4. Ställ in databassortering i Entity Framework Code-First Initializer