Graphql 如何创建“本地”;“复制”;远程Hasura服务器的设计?
我想在本地机器上建立一个Hasura的开发环境,它复制我现有的产品(相同的表、相同的模式、相同的数据)Graphql 如何创建“本地”;“复制”;远程Hasura服务器的设计?,graphql,hasura,Graphql,Hasura,我想在本地机器上建立一个Hasura的开发环境,它复制我现有的产品(相同的表、相同的模式、相同的数据) 完成此任务所需的步骤是什么 备份数据库 使用数据库运行Hasura 确保Hasura元数据已同步 Hasura有一个特殊的端点,用于在Postgres实例上执行pg_dump 下面是一个示例CURL请求: curl--位置--请求发布'https://your-remote-hasura.com/v1alpha1/pg_dump' \ --标题“内容类型:应用程序/json”\ --标题“
- 完成此任务所需的步骤是什么李>
Hasura有一个特殊的端点,用于在Postgres实例上执行pg_dump 下面是一个示例CURL请求:
curl--位置--请求发布'https://your-remote-hasura.com/v1alpha1/pg_dump' \
--标题“内容类型:应用程序/json”\
--标题“X-Hasura-Role:管理员”\
--标题“内容类型:文本/普通”\
--数据原始'{
“opts”:[“-O”、“-x”、“--insert”、“--schema”、“public”]
}“
它以psql格式输出模式和数据
为了方便导入、测试和运行CURL查询,可以使用Postman之类的工具
请按照pg_转储文件调整所需选项
i、 e.上述查询使用“-inserts”opt,它在输出中生成“insertinto”语句
可以将输出复制、粘贴并直接导入Hasura面板SQL选项卡(“从stdin复制”语句插入面板时会导致错误)
导入前,注释掉或删除行createschemapublic代码>来自查询,因为它已存在
您还必须在执行查询期间或之后选择要跟踪的表和关系
如果数据量更大,则最好使用CLI进行导入。我发现此过程运行良好
创建一个干净的空本地postgresql数据库和Hasura实例。要更新现有的本地数据库
从现有Hasura服务器转储架构和数据(根据@protob,但设置了clean_输出
),以便不必手动更改输出。有关详细信息,请参阅
curl --location --request POST 'https://example.com/v1alpha1/pg_dump' \
--header 'Content-Type: application/json' \
--header 'X-Hasura-Role: admin' \
--header 'Content-Type: text/plain' \
--header 'x-hasura-admin-secret: {SECRET}' \
--data-raw '{ "opts": ["-O", "-x","--inserts", "--schema", "public"], "clean_output": true}' > hasura-db.sql
本地导入架构和数据:
psql -h localhost -U postgres < hasura-db.sql
现在,最后使用Hasura CLI应用Hasura元数据:
hasura metadata apply
享受您的新实例!谢谢,我只需要更多详细信息。使用docker?复制数据库结构/数据?更多详细信息-阅读prostgresql中的备份?可能应该将您的答案标记为正确,但我在Heroku上托管的Postgres在我执行第一步时返回503…我感谢您的帮助,先生!标记为✅