我使用Render.com来快速部署Go和PostgreSQL
你好!如果能够对我成功地将Go和PostgreSQL部署得比预期更简单一些有所帮助的话,我会非常开心。
推荐给这样的人
- より手軽にGoとPostgreSQLをデプロイしてDBから取得、保存等ができるようになりたい
这篇文章没有提及的内容。
-
- Goの文法に関して
- 各種サイトやツールのインストール方法
本次使用的Go文件
我們將使用在這篇文章中實現的Go檔案。
仓库在下面列出的位置。
在render.com上创建账号。
我要访问以下的网站。
我认为以下文章可以作为参考,了解账号创建的流程。
创建用于部署的PostgreSQL数据库。
在访问 https://dashboard.render.com/ 后,选择 New + 并选择 PostgreSQL。



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

创建用于部署的Go代码。
從新開始,選擇網絡服務。


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



func main() {
host := os.Getenv("POSTGRES_HOSTNAME")
database := os.Getenv("POSTGRES_DB")
user := os.Getenv("POSTGRES_USER")
password := os.Getenv("POSTGRES_PASSWORD")

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

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。

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

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


顺便提一下,用户表是通过下面的部分生成的。
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的端点。

尝试执行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"}]

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