PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como ter funcionalidade offline completa em um aplicativo web com banco de dados PostgreSQL?


Resposta curta:não conheço nada assim que exista atualmente.

No entanto, em teoria, isso poderia funcionar ... (resposta longa:)
  1. Escreva um backend PostgreSQL para levelup (existe um para MySQL:https://github.com/kesla/mysqldown)
  2. Conecte o pouch-server para ler/gravar de seu banco de dados PostgreSQL usando o adaptador leveldb existente do pouchdb (que por sua vez terá que ser configurado para usar seu backend postgres). Parabéns, agora você pode sincronizar dados usando o PouchDB!

Se uma abordagem como essa é prática na realidade para sua aplicação é uma pergunta diferente que você terá que responder.

Você pode estar se perguntando, por exemplo, "serei capaz de sincronizar um esquema complexo existente com várias tabelas para o cliente com essa abordagem?" A resposta provavelmente não é - a implementação mysqldown de leveldown usa uma única tabela MySQL com três campos:id , key e value (fonte), e imagino que qualquer adaptador PostgreSQL de uso geral seria semelhante (nada diz que você não pode fazer um adaptador de propósito especial apenas para o seu aplicativo!).

Por outro lado, se você implementar uma API compatível com couchdb (ou um subconjunto - você pode não precisar de anexos, por exemplo) em seu esquema de banco de dados existente, não há nada que o impeça de usar o PouchDB no cliente para falar diretamente com ele como se fosse um CouchDB real - basta inserir a URL e chamar replicate() ! Implementar o protocolo de replicação pode ser um pouco trabalhoso, já que você precisaria rastrear revisões e assim por diante em algum lugar - mas, novamente, tecnicamente não é impossível!

Há também implementações de armazenamento de back-end do levelup que são projetadas para navegadores. Consulte level.js, que pode ser outra maneira de sincronizar entre um back-end de nível do Postgres do lado do servidor e o navegador.

TL;DR :Há muito trabalho sendo feito em torno de bancos de dados Javascript agora. A sincronização com o Postgres é impossível? provavelmente não. Daria muito trabalho? Definitivamente. Vale a pena? Quem sabe, mas seria legal.