sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan har man komplet offline funktionalitet i en webapp med PostgreSQL-database?

Kort svar:Jeg kender ikke til noget lignende, der findes i øjeblikket.

Men i teorien kunne dette fås til at virke...(langt svar:)

  1. Skriv en PostgreSQL-backend til levelup (en findes for MySQL:https://github.com/kesla/mysqldown)
  2. Tilslut pouch-server til at læse/skrive fra din PostgreSQL db ved hjælp af pouchdbs eksisterende leveldb adapter (som igen skal konfigureres til at bruge din postgres backend). Tillykke, du kan nu synkronisere data ved hjælp af PouchDB!

Hvorvidt en tilgang som denne er praktisk i virkeligheden for din ansøgning, er et andet spørgsmål, du bliver nødt til at besvare.

Du undrer dig måske, for eksempel, "vil jeg være i stand til at synkronisere et eksisterende komplekst skema med flere tabeller til klienten med denne tilgang?" Svaret er sandsynligvis ikke - mysqldown-implementeringen af ​​leveldown bruger en enkelt MySQL-tabel med tre felter:id , key og value (kilde), og jeg forestiller mig, at enhver postgreSQL-adapter til generelle formål ville være ens (intet siger dog, at du ikke kan lave en speciel adapter kun til din app!).

På den anden side, hvis du skulle implementere en couchdb-kompatibel API (eller et undersæt - du har muligvis ikke brug for vedhæftede filer, for eksempel) over dit eksisterende databaseskema, er der intet, der forhindrer dig i at bruge PouchDB på klienten til at tale direkte til det. som om det var en faktisk CouchDB - bare indtast URL'en og kald replicate() ! Implementering af replikeringsprotokollen kan være en del arbejde, da du bliver nødt til at spore revisioner og så videre et eller andet sted - men igen, teknisk set ikke umuligt!

Der er også implementeringer af levelups backend-lager, der er designet til browsere. Se level.js, som kunne være en anden måde at synkronisere mellem en Postgres levelup-backend på serversiden og browseren.

TL;DR :Der er masser af arbejde, der bliver gjort omkring Javascript-databaser lige nu. Er det umuligt at synkronisere med Postgres? sikkert ikke. Ville det være meget arbejde? Helt bestemt. Det værd? Hvem ved, men det ville være fedt.



  1. PL/SQL Performance Tuning for LIKE '%...%' Wildcard-forespørgsler

  2. Fuldtekstsøgning med InnoDB

  3. Sådan indsætter og sletter du data i PostgreSQL

  4. Håndtering af MySQL dato- og tidsstempler i Java