【发布时间】:2020-08-22 07:44:19
【问题描述】:
所以问题是:我怎样才能获得客户端备份,以便用户可以将自己的数据保存到可下载的文件中,以后可以使用该文件来恢复所有数据?
关于我的堆栈的信息:
我在前端使用 React、mobx、apollo。 我在后端使用 Hasura 和 Postgresql。
我的应用程序将是多租户的,我还没有实现多租户,但可能会发生这样的情况,每个租户共享同一个 Hasura 数据库,并且tenant_id 将让他们只访问自己的数据。
数据本身建立在具有一对多关系的多个表上。所以备份本质上必须是用户全部数据的图像,包含必要的信息,以便在恢复时,所有关系都像以前一样工作。
首先我以一种天真的(或者至少我认为它很天真)的方式解决了这个问题,这意味着我在客户端添加了一个按钮来下载数据,按下按钮会导致阿波罗查询数据来自 Hasura,并将数据导出为 JSON 供客户端下载。
现在在我的脑海里,我认为有一种更可靠、更安全的方法可以做到这一点。当然,我不希望用户能够从数据库中获取整个转储,只希望用户有权访问的所有记录。
【问题讨论】:
标签: javascript reactjs postgresql apollo hasura