sql >> Database >  >> RDS >> PostgreSQL

Hoe krijg ik volledige offline functionaliteit in een web-app met PostgreSQL-database?

Kort antwoord:ik ken niets zoals dit dat momenteel bestaat.

In theorie zou dit echter kunnen werken... (lang antwoord:)

  1. Schrijf een PostgreSQL-backend voor levelup (er bestaat een voor MySQL:https://github.com/kesla/mysqldown)
  2. Bedraad pouch-server om van uw PostgreSQL db te lezen/schrijven met behulp van pouchdb's bestaande leveldb-adapter (die op zijn beurt moet worden geconfigureerd om uw postgres-backend te gebruiken). Gefeliciteerd, u kunt nu gegevens synchroniseren met PouchDB!

Of een dergelijke aanpak in werkelijkheid praktisch is voor uw toepassing, is een andere vraag die u zult moeten beantwoorden.

U vraagt ​​zich misschien af, bijvoorbeeld:"kan ik met deze aanpak een bestaand complex schema met meerdere tabellen synchroniseren met de client?" Het antwoord is waarschijnlijk niet - de mysqldown-implementatie van leveldown gebruikt een enkele MySQL-tabel met drie velden:id , key , en value (bron), en ik kan me voorstellen dat elke PostgreSQL-adapter voor algemeen gebruik vergelijkbaar zou zijn (niets zegt echter dat je geen speciale adapter voor je app kunt maken!).

Aan de andere kant, als u een couchdb-compatibele API (of een subset - u hebt bijvoorbeeld geen bijlagen nodig) over uw bestaande databaseschema zou implementeren, is er niets dat u ervan weerhoudt om PouchDB op de client te gebruiken om er rechtstreeks mee te praten alsof het een echte CouchDB is - vul gewoon de URL in en bel replicate() ! Het implementeren van het replicatieprotocol kan behoorlijk wat werk zijn, aangezien u revisies enzovoort ergens moet bijhouden - maar nogmaals, technisch gezien niet onmogelijk!

Er zijn ook implementaties van de backend-opslag van levelup die zijn ontworpen voor browsers. Zie level.js, wat een andere manier zou kunnen zijn om te synchroniseren tussen een Postgres levelup-backend aan de serverzijde en de browser.

TL;DR :Er wordt momenteel enorm veel werk verzet rond Javascript-databases. Is synchroniseren met Postgres onmogelijk? waarschijnlijk niet. Zou het veel werk zijn? Definitief. De moeite waard? Wie weet, maar het zou gaaf zijn.



  1. Wat is Percona DB

  2. Hoe de positie van een lijstitem in MySQL te retourneren

  3. Controleer de databaseverbinding met pg-promise bij het starten van een app

  4. PostgreSQL:tabellen weergeven in PostgreSQL