我使用Render.com来快速部署Go和PostgreSQL

你好!如果能够对我成功地将Go和PostgreSQL部署得比预期更简单一些有所帮助的话,我会非常开心。

推荐给这样的人

    より手軽にGoとPostgreSQLをデプロイしてDBから取得、保存等ができるようになりたい

这篇文章没有提及的内容。

    • Goの文法に関して

 

    各種サイトやツールのインストール方法

本次使用的Go文件

我們將使用在這篇文章中實現的Go檔案。

 

仓库在下面列出的位置。

 

在render.com上创建账号。

我要访问以下的网站。

 

我认为以下文章可以作为参考,了解账号创建的流程。

 

创建用于部署的PostgreSQL数据库。

在访问 https://dashboard.render.com/ 后,选择 New + 并选择 PostgreSQL。

スクリーンショット 2023-12-02 15.26.02.png
スクリーンショット 2023-12-02 15.27.15.png
スクリーンショット 2023-12-02 15.27.23.png

如果成功创建,数据库信息将被记录在connections处。本次我们将使用红框部分。

スクリーンショット 2023-12-02 15.34.44.png

创建用于部署的Go代码。

從新開始,選擇網絡服務。

スクリーンショット 2023-12-02 16.13.30.png
スクリーンショット 2023-12-02 15.38.54.png

选择要部署的存储库。本次将使用存储库中编写的Go文件。

スクリーンショット 2023-12-02 15.39.16.png
スクリーンショット 2023-12-02 15.41.58.png
スクリーンショット 2023-12-02 15.44.16.png
func main() {
    host := os.Getenv("POSTGRES_HOSTNAME")
    database := os.Getenv("POSTGRES_DB")
    user := os.Getenv("POSTGRES_USER")
    password := os.Getenv("POSTGRES_PASSWORD")
スクリーンショット 2023-12-02 15.48.24.png

我认为很快部署就会成功。

スクリーンショット 2023-12-02 15.54.47.png
Dec 2 03:54:21 PM  ==> Running './app'
Dec 2 03:54:21 PM  Server is running on port 8080...
Dec 2 03:54:29 PM  Your service is live ?

使用DB客户端工具连接到部署在PostgreSQL上的数据库。

我想使用 https://tableplus.com/ 这个工具。
安装和设置完成后,可以通过右键单击选择Connection URL。

スクリーンショット 2023-12-02 15.57.17.png

在这里贴上的URL将成为外部数据库的URL。
(可以通过上述的仪表板选项卡查看PostgreSQL的信息)

スクリーンショット 2023-12-02 15.59.02.png

我觉得你可以以这样的感觉打开设置界面,然后点击连接。

スクリーンショット 2023-12-02 16.01.45.png
スクリーンショット 2023-12-02 16.03.10.png

顺便提一下,用户表是通过下面的部分生成的。

func UsersMigrate(db *sql.DB) {
	var count int
	err := db.QueryRow("SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 'users'").Scan(&count)
	if err != nil {
		panic(err)
	}

我试着执行API。

在仪表盘上选择Web服务,并查看Go的端点。

スクリーンショット 2023-12-02 16.04.01.png

尝试执行API。参考下面的端点。

func Users(db *sql.DB) {
	http.HandleFunc("/users/get", func(w http.ResponseWriter, r *http.Request) {
		// 省略
	})

	http.HandleFunc("/users/create", func(w http.ResponseWriter, r *http.Request) {
        // 省略
    })
}
% curl -X GET https://go-test-e5bk.onrender.com/users/get
[{"Id":1,"Name":"Smith"},{"Id":2,"Name":"Johnson"},{"Id":3,"Name":"Brown"}]
% curl -X POST   -d '{ "name": "Bob" }' https://go-test-e5bk.onrender.com/users/create
{"Id":4,"Name":"Bob"}
mikaijun@MacBook-Pro ~ % curl -X GET https://go-test-e5bk.onrender.com/users/get                             
[{"Id":1,"Name":"Smith"},{"Id":2,"Name":"Johnson"},{"Id":3,"Name":"Brown"},{"Id":4,"Name":"Bob"}]
スクリーンショット 2023-12-02 16.08.57.png

感谢您阅读以上内容。
希望这些关于Go部署的信息能对您有所帮助。
非常感谢您的阅读!

广告
将在 10 秒后关闭
bannerAds