PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak mieć pełną funkcjonalność offline w aplikacji internetowej z bazą danych PostgreSQL?

Krótka odpowiedź:nie wiem o czymś takim, co obecnie istnieje.

Jednak teoretycznie może to zadziałać...(długa odpowiedź:)

  1. Napisz backend PostgreSQL do podnoszenia poziomu (jeden istnieje dla MySQL:https://github.com/kesla/mysqldown)
  2. Podłącz serwer etui do odczytu/zapisu z bazy danych PostgreSQL przy użyciu istniejącego adaptera leveldb pouchdb (który z kolei będzie musiał być skonfigurowany do korzystania z zaplecza Postgres). Gratulacje, możesz teraz synchronizować dane za pomocą PouchDB!

To, czy takie podejście jest praktyczne w przypadku Twojej aplikacji, to inne pytanie, na które musisz odpowiedzieć.

Być może zastanawiasz się, na przykład, „czy dzięki temu podejściu będę w stanie zsynchronizować z klientem istniejący złożony schemat z wieloma tabelami?” Odpowiedź prawdopodobnie nie jest - implementacja mysqldown leveldown wykorzystuje pojedynczą tabelę MySQL z trzema polami:id , key i value (źródło) i wyobrażam sobie, że każdy uniwersalny adapter PostgreSQL byłby podobny (nic nie mówi, że nie możesz zrobić adaptera specjalnego przeznaczenia tylko dla swojej aplikacji!).

Z drugiej strony, jeśli miałbyś zaimplementować interfejs API zgodny z couchdb (lub podzbiór - możesz na przykład nie potrzebować załączników) w istniejącym schemacie bazy danych, nic nie powstrzyma cię przed użyciem PouchDB na kliencie do bezpośredniego komunikowania się z tym jakby to była rzeczywista baza danych CouchDB - po prostu wstaw adres URL i wywołaj replicate() ! Implementacja protokołu replikacji może wymagać sporo pracy, ponieważ będziesz musiał gdzieś śledzić wersje i tak dalej - ale znowu, technicznie nie jest to niemożliwe!

Istnieją również implementacje pamięci masowej zaplecza Levelup, które są przeznaczone dla przeglądarek. Zobacz level.js, który może być innym sposobem na synchronizację między backendem poziomu Postgres po stronie serwera a przeglądarką.

TL;DR :Obecnie wykonujemy mnóstwo pracy wokół baz danych JavaScript. Czy synchronizacja z Postgresem jest niemożliwa? prawdopodobnie nie. Czy wymagałoby to dużo pracy? Zdecydowanie. Warto było? Kto wie, ale byłoby fajnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz kopię zapasową PostgreSQL za pomocą pg_dump i pg_dumpall

  2. Postgres BŁĄD:nie można otworzyć pliku do odczytu:Odmowa uprawnień

  3. Zapytanie o szerokość geograficzną PostgreSQL

  4. IntegrityError:rozróżnij unikalne ograniczenie od niezerowych naruszeń

  5. Wyzwalacze Rails, PostgreSQL i historii