Gogs适配GaussDB开源开发任务

举报
yd_225043117 发表于 2024/12/10 15:42:44 2024/12/10
【摘要】 Gogs是一款轻量级、跨平台、极易搭建的自助 Git 服务。Gogs适配GaussDB

背景介绍

      Gogs是一款轻量级、跨平台、极易搭建的自助 Git 服务。旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 LinuxmacOSWindows 和基于 ARM 的操作系统。

      华为云数据库 GaussDB(https://support.huaweicloud.com/gaussdb/index.html) 是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力。

开发思路

     Gogs操作数据库使用的是Gorm,所以可以使用已有的 postgres GORM 驱动,然后通过设置 DriverName 来切换到 GaussDB 数据库驱动类。通过分析 postgres GORM 驱动代码可知,在配置 postgres 驱动时,如果指定了 DriverName 就会直接使用该数据库驱动类,否则再加载 PostgreSQL 数据库驱动类。这就为我们提供了一套嫁衣,让我们使用 postgres GORM 驱动来操作 GaussDB 数据库驱动类。

1、添加开源驱动包go get gitee.com/opengauss/openGauss-connector-go-pq 

2、下载官网商业驱动到项目目录,

3、在go.mod中替换开源驱动为商业驱动

replace gitee.com/opengauss/openGauss-connector-go-pq => ./openGauss-connector-go-pq
     

4、在internal/dbutil/dsn.go文件中导入

_ "gitee.com/opengauss/openGauss-connector-go-pq"

dialector = postgres.Open(dsn) 替换为 dialector = postgres.New(postgres.Config{DriverName: "opengauss", DSN: dsn})
5、在internal/db/models.go 文件
driver = "pgx" 替换为 driver = "postgres"
     

验证截图

4.1.1 web页数据库类型选择“GaussDB”输入GaussDB主机、用户、密码和数据库名称,如下图。

gogs_install_home.png

4.1.2 安装完后跳转到登录页面,如下图


4.1.3 选择注册,进入下图步骤,进行用户注册


 

4.1.4注册完用户后,跳转到登录页,如下图

4.1.5 登录后,进入控制台,如下图


 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。