sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo tener una funcionalidad fuera de línea completa en una aplicación web con base de datos PostgreSQL?

Respuesta corta:No conozco nada como esto que exista actualmente.

Sin embargo, en teoría, esto podría funcionar... (respuesta larga:)

  1. Escriba un backend de PostgreSQL para subir de nivel (existe uno para MySQL:https://github.com/kesla/mysqldown)
  2. Conecte el servidor de bolsa para leer/escribir desde su base de datos de PostgreSQL utilizando el adaptador leveldb existente de bolsa de base de datos (que a su vez deberá configurarse para usar su backend de postgres). ¡Felicitaciones, ahora puede sincronizar datos usando PouchDB!

Si un enfoque como este es práctico en realidad para su aplicación es una pregunta diferente que tendrá que responder.

Es posible que se pregunte, por ejemplo, "¿podré sincronizar un esquema complejo existente con varias tablas con el cliente con este enfoque?" La respuesta probablemente no sea:la implementación mysqldown de leveldown usa una única tabla MySQL con tres campos:id , key y value (fuente), e imagino que cualquier adaptador de PostgreSQL de propósito general sería similar (¡sin embargo, nada dice que no pueda hacer un adaptador de propósito especial solo para su aplicación!).

Por otro lado, si tuviera que implementar una API compatible con couchdb (o un subconjunto; es posible que no necesite archivos adjuntos, por ejemplo) sobre su esquema de base de datos existente, no hay nada que le impida usar PouchDB en el cliente para hablar directamente con eso. como si fuera un CouchDB real:simplemente ingrese la URL y llame a replicate() ! Implementar el protocolo de replicación puede ser un poco de trabajo, ya que necesitaría realizar un seguimiento de las revisiones y demás en algún lugar, pero de nuevo, ¡técnicamente no es imposible!

También hay implementaciones del almacenamiento backend de levelup que están diseñadas para navegadores. Consulte level.js, que podría ser otra forma de sincronizar entre un backend de subida de nivel de Postgres del lado del servidor y el navegador.

TL;RD :Actualmente se está trabajando mucho en torno a las bases de datos de Javascript. ¿Es imposible sincronizar con Postgres? probablemente no. ¿Sería mucho trabajo? Definitivamente. ¿Vale la pena? Quién sabe, pero sería genial.