sql >> Databáze >  >> RDS >> PostgreSQL

Jak mít kompletní offline funkčnost ve webové aplikaci s PostgreSQL databází?

Krátká odpověď:Nevím o ničem takovém, co v současné době existuje.

Nicméně teoreticky by to mohlo fungovat...(dlouhá odpověď:)

  1. Napište backend PostgreSQL pro zvýšení úrovně (jeden existuje pro MySQL:https://github.com/kesla/mysqldown)
  2. Zapojte pouch-server pro čtení/zápis z vaší PostgreSQL db pomocí stávajícího leveldb adaptéru pouchdb (který zase bude muset být nakonfigurován pro použití vašeho postgresového backendu). Gratulujeme, nyní můžete synchronizovat data pomocí PouchDB!

Zda je takový přístup ve skutečnosti pro vaši aplikaci praktický, je jiná otázka, na kterou budete muset odpovědět.

Možná se ptáte například:„budu tímto přístupem schopen synchronizovat s klientem existující komplexní schéma s více tabulkami?“ Odpověď pravděpodobně není - implementace mysqldown leveldown používá jedinou MySQL tabulku se třemi poli:id , key a value (zdroj) a představuji si, že jakýkoli univerzální adaptér PostgreSQL by byl podobný (nic však neříká, že nemůžete vytvořit adaptér pro speciální účely pouze pro vaši aplikaci!).

Na druhou stranu, pokud byste implementovali rozhraní API kompatibilní s couchdb (nebo podmnožinu – například nemusíte potřebovat přílohy) přes stávající schéma databáze, nic vám nebrání v tom, abyste na klientovi použili PouchDB a mohli s ním přímo mluvit. jako by to byla skutečná CouchDB – stačí zadat adresu URL a zavolat replicate() ! Implementace replikačního protokolu může být docela pracná, protože byste někde potřebovali sledovat revize a tak dále – ale opět, technicky to není nemožné!

Existují také implementace backendového úložiště levelup, které jsou určeny pro prohlížeče. Viz level.js, což by mohl být další způsob synchronizace mezi backendem Postgres levelup na straně serveru a prohlížečem.

TL;DR :Právě teď se kolem databází Javascript dělá spousta práce. Je synchronizace s Postgres nemožná? asi ne. Bylo by to hodně práce? Rozhodně. Stojí za to? Kdo ví, ale bylo by to skvělé.



  1. Failover &Failback pro PostgreSQL v Microsoft Azure

  2. Jak zjistit, která verze Postgres je spuštěna

  3. PostgreSQL unnest() s číslem prvku

  4. Jak ClusterControl konfiguruje virtuální IP a co lze očekávat při převzetí služeb při selhání