当前位置: 首页 > news >正文

公司网站制作哪个公司好重庆网站建设公司在线联系

公司网站制作哪个公司好,重庆网站建设公司在线联系,中国最大的广告公司排名列表,和凡科网类似的网站背景 Hasura 是一个开源的 GraphQL 引擎,它可以帮助开发人员快速构建和部署现代应用程序的后端。它提供了一个自动化的 GraphQL API ,可以直接连接到现有的数据库,并提供实时数据推送和订阅功能。 Hasura 团队总部位于印度。 下载安装 脚本…

背景

Hasura 是一个开源的 GraphQL 引擎,它可以帮助开发人员快速构建和部署现代应用程序的后端。它提供了一个自动化的 GraphQL API ,可以直接连接到现有的数据库,并提供实时数据推送和订阅功能。 Hasura 团队总部位于印度。

下载安装

脚本地址:https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml

[root@graphql ~]# cd /opt/hasura/# 下载docker-compose.yml的编排脚本
[root@graphql hasura]# curl https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml -o docker-compose.yml# 启动容器
[root@graphql hasura]# docker compose up -d
[+] Running 3/3✘ Container hasura-data-connector-agent-1  Error                                                                     0.1s ✔ Container hasura-postgres-1              Running                                                                   0.0s ✔ Container hasura-graphql-engine-1        Created                                                                   0.1s 
dependency failed to start: container hasura-data-connector-agent-1 is unhealthy

遇到的问题:CPU does not support x86-64-v2

正常情况下,经过上述的安装之后就可以正常使用Hasura了,但是显然, docker compose 启动容器后显示了一条错误信息:

dependency failed to start: container hasura-data-connector-agent-1 is unhealthy

# 查看进程
[root@graphql hasura]# docker ps
CONTAINER ID   IMAGE                                   COMMAND                   CREATED          STATUS                            PORTS      NAMES
48055c1c2732   hasura/graphql-data-connector:v2.33.0   "/app/run-java.sh"        29 seconds ago   Restarting (127) 13 seconds ago              hasura-data-connector-agent-1
8e5e0f4d8cd5   postgres:15                             "docker-entrypoint.s…"   13 hours ago     Up 13 hours                       5432/tcp   hasura-postgres-1# 查看报错容器的日志信息
[root@graphql hasura]# docker logs 48055c1c2732
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
Fatal glibc error: CPU does not support x86-64-v2
  • 原因分析
    日志里说明了错误的原因,由于 CPU 架构问题。。

  • 解决方法
    那么,就换个不同的版本吧,但是从官方的发布日志里并没有找到需要的版本;换个思路, data-connector-agent 似乎是新版本才加入的,核心的 graphql-engine 能用就行,就从网络博客中找到了以下 docker-compose.yml 的编排脚本:

version: '3.6'
services:postgres:image: postgres:15restart: alwaysvolumes:- db_data:/var/lib/postgresql/dataports:- "5432:5432"environment:POSTGRES_PASSWORD: postgrespasswordgraphql-engine:image: hasura/graphql-engine:v2.24.0ports:- "8080:8080"depends_on:- "postgres"restart: alwaysenvironment:## postgres database to store Hasura metadataHASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres## this env var can be used to add the above postgres database to Hasura as a data source. this can be removed/updated based on your needsPG_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres## enable the console served by serverHASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console## enable debugging mode. It is recommended to disable this in productionHASURA_GRAPHQL_DEV_MODE: "true"HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log## uncomment next line to run console offline (i.e load console assets from server instead of CDN)# HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets## uncomment next line to set an admin secret# HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:db_data:

遇到的问题:不同版本的PostgreSQL数据目录不兼容

如果一开始用的是 PostgreSQL 15 ,而重新换新的 docker-compose.yml 的编排脚本(里面是 PostgreSQL 14.X )执行时,便会报出以下错误。

The data directory was initialized by PostgreSQL version 15, which is not compatible with this version 14.9 (Debian 14.9-1.pgdg120+1).

  • 原因分析
    docker compose 会按名称重用卷(这样就不会丢失数据)。在更换 PostgreSQL 大版本时,必须将数据迁移到新卷,如果没有任何有用的数据,则删除旧的卷。

  • 解决方法
    先删除容器,再删除未被任何容器使用的本地卷
    docker volume ls # 查看本地所有的卷
    docker volume prune # 删除未被任何容器使用的本地卷

[root@graphql hasura]# docker volume ls
DRIVER    VOLUME NAME
local     hasura_db_data# 这条命令并没有删除卷,接着就用下一条语句直接删除
[root@graphql hasura]# docker volume prune
WARNING! This will remove anonymous local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B[root@graphql hasura]# docker volume rm hasura_db_data
hasura_db_data
/var/lib/docker/volumes# 再次尝试启动
[root@graphql hasura]# docker compose up -d# 启动成功
[root@graphql hasura]# docker ps
CONTAINER ID   IMAGE                           COMMAND                    CREATED              STATUS                        PORTS                                       NAMES
5709437e2127   hasura/graphql-engine:v2.24.0   "/bin/sh -c '\"${HGE_…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   hasura-graphql-engine-1
a41ec5127932   postgres:15                     "docker-entrypoint.s…"    About a minute ago   Up About a minute             0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   hasura-postgres-1

连接数据源

安装启动成功后,可以打开浏览器访问控制台:http://your-host:8080/console。

可以直接使用 Hasura 自带的 PostgreSQL 作为数据源进行操作。

2023-11-04-Hasura.jpg

Hasura 本身就是基于 PostgreSQL 进行开发的,目前对其他的数据库也在做适配中,不过如果要连接 MySQL ,则需要使用其企业版。。

2023-11-04-MySQL.jpg

因此如果确实有连接 MySQL 的强需求,则可以尝试下国产版的 Hasura :飞布。

2023-11-04-Fireboom.jpg

GraphQL基本操作

关于 GraphQL 可以结合以下两个网址极速入门~~

  • GraphQL入门
  • Countries GraphQL API

2023-11-04-Country.jpg

基本查询

query {countries{name,codephones}
}

嵌套查询

query {countries{name,codephone,languages{code,name,native,rtl}}
}

条件查询

{countries(filter : {code:{eq: "AU"} }) {namecodephonelanguages {codenamenativertl}}
}query getCountry {country(code: "CN"){name,codephones}
}

别名

{countries(filter : {code:{eq: "AU"} }) {namecodephonelan: languages {codenamenativertl}}
}

片段

{conflictOne: countries(filter: {code: {eq: "PS"}}) {...sameField}conflictTwo: countries(filter: {code: {eq: "IL"}}) {...sameField}
}fragment sameField on Country {codenamenativelan: languages {codenamenative}
}

操作名称query

query getCounty {countries(filter : {code:{eq: "CN"} }) {namecodephonelanguages {codenamenativertl}}
}

变量

query getCounty($code: String) {countries(filter: {code: {eq: $code}}) {namecodephonelanguages {codenamenativertl}}
}{"code": "AU"
}

默认变量

query getCounty($code: String = "CN") {countries(filter: {code: {eq: $code}}) {namecodephonelanguages {codenamenativertl}}
}

指令:include,skip

query getCounty($code: String, $withLanguages: Boolean!) {countries(filter: {code: {eq: $code}}) {namecodephonelanguages @include(if: $withLanguages){codenamenativertl}states @skip(if: $withLanguages){codename}}
}{"code": "CN","withLanguages": false
}

小总结

Hasura 是一个强大的工具,可以帮助开发人员快速构建现代应用程序的后端,并提供实时数据推送和安全性,其特性如下:

  1. 快速开发:Hasura提供了一个简单易用的界面,可以快速定义和管理数据模型,并自动生成GraphQL API。这样可以大大减少开发时间和工作量。
  2. 实时数据推送:Hasura支持实时数据推送和订阅功能,可以实时更新客户端应用程序的数据。这对于需要实时更新的应用程序非常有用,如聊天应用、实时博客等。
  3. 安全性:Hasura提供了强大的身份验证和授权功能,可以轻松管理用户权限和访问控制。这样可以确保数据的安全性和保护用户隐私。
  4. 扩展性:Hasura可以轻松扩展以处理高负载和大规模应用程序。它支持水平扩展和负载均衡,可以根据需要增加或减少资源。

当然,作为一款后端低代码平台,也推荐使用对标 Hasura 的国产替代产品:飞布

飞布是可视化API开发平台,对标 hasura ,灵活开放、多语言兼容、简单易学,能构建生产级 WEB API ,让前端变全栈,让后端不搬砖。

Reference

  • Hasura官方文档
  • Hasura安装脚本
  • Countries GraphQL API 源码
  • Countries 数据集
http://www.yayakq.cn/news/586991/

相关文章:

  • 网站制作的核心技术厦门建设网站制作
  • pc网站制作是指什么意思crm管理系统怎么用
  • 河南睢县筑宇建设网站网络类黄页
  • 廊坊住房和城乡建设厅网站网站整体色彩的建设
  • 分销网站建设方案地方门户网站模板
  • 做网站公司简介模版国外的自建站平台是什么
  • 佛山个性化网站搭建wordpress速度
  • 海口网站运营托管公司做网站怎样调用支付宝接口
  • 网站设计毕业设计题目成都市建设工程质量协会网站
  • 在自己的网站上做查分系统哪些网站可以做兼职设计师
  • 到哪里找人做网站wordpress 首页只显示一篇文章
  • 网站建设音乐插件怎么弄网站建设 国外
  • 网站展示程序软件开发外包平台
  • 网站建设哪家公司好网站建设网站建设工作职责说明书
  • 智慧团建网站登录忘记密码郴州网上房地产
  • 互站网站源码普宁建设局网站
  • 如何做网站创业浙江省建设培训中心网站首页
  • 云建站精品模版建站seo是什么
  • 个人做网站创业看片代码 python
  • 做网站云服务器还是云虚拟主机响应式网站建设网站
  • 微网站二级页面怎么做平台网站怎么做的好
  • 做微商能利用的网站有哪些问题取消wordpress 注册邮箱验证码
  • 什么是网站前台百度排名竞价
  • wordpress加字体颜色湛江网站推广优化
  • 商城网站建设行情网络营销案例2022
  • 电商网站 开发周期做网站信科网站建设
  • ifront做原型控件的网站在线制作免费生成水印
  • 新网站制作公司建企业网站哪个平台好
  • 网站开发学习流程自己做公司的网站
  • vip影视网站如何做app阜新网站设计