Sealos Devbox 运用教程:运用 Cursor 一键搞定数据库开发环境
“诶,你这前后端开发环境怎样建立这么快?”
“用了 Devbox 啊。”
“不是吧,你怎样在 Cursor 里衔接开发环境的数据库,这些都配好了?”
“对啊,一键搞定。”
“恶作剧吧?这得装备半响环境吧?”
“不,由于 Devbox 现已帮咱们把一切开发环境都预装备好了,直接写代码就行。”
这不是科幻电影的对白,而是实在存在的 Sealos Devbox 的功用。
今日我就给咱们展现一下如何用最简略的方法,完成开发环境与数据库的无缝协作。
假如你不知道啥是 Devbox,能够看咱们之前的文章:Sealos Devbox 运用教程:运用 Cursor 开发一个高仿苹果官网
Sealos 数据库介绍
Sealos 数据库是一个强壮且灵敏的数据库办理渠道,答运用户在 Sealos 上可视化地办理和运用各种数据库。并且还供给了一整套高效的东西和机制,使数据库的办理、扩展、监控和毛病康复愈加快捷和主动化,适宜从开发到出产的各类场景。
你只需求点点鼠标,就能够创立各种数据库,并且仍是高可用的,你说气人不气人。
Sealos 数据库支撑丰厚的数据库办理体系 (DBMS),包括 MySQL、PostgreSQL、Redis、MongoDB,此外还支撑音讯行列 (如 Kafka) 和向量数据库等,满意了用户多种事务场景的需求。
除此之外,Sealos 数据库还支撑主动毛病康复、灵敏的数据备份与康复机制、数据搬迁等等各种特性,这儿我就不一一列举了,感兴趣的能够看 Sealos 官方文档。
创立数据库
首要,咱们需求创立一个数据库。浏览器进入 Sealos 桌面,然后翻开【数据库】App。
点击【新建数据库】按钮,进入数据库装备界面。在这儿,你能够依据实践需求进行以下装备:
- 挑选数据库类型 (本例中咱们挑选 MySQL)
- 指定数据库版别
- 装备核算资源 (CPU 和内存)
- 设置副本数量以完成高可用
- 分配磁盘空间巨细
- 为数据库命名
整个进程十分直观,只需求依照界面提示一步步操作即可。
挑选好装备后,点击【布置】按钮,数据库就会开端创立。比及数据库状况变为运转中今后,点击左面的小眼睛图标,即可看到数据库的衔接信息。
点击【衔接】按钮,进入数据库的终端界面。
在终端界面输入以下指令创立测验数据库。
CREATE DATABASE testdb;
这时候,根本的数据库装备就搞定啦。接下来开端创立开发环境。
创立 Devbox 开发环境
现在咱们要创立一个 Devbox 开发环境,并经过本地的 IDE 衔接到这个开发环境。
在 Sealos 桌面翻开 Devbox 运用,新建一个项目,挑选 Go 言语作为运转环境,CPU 内存改成 1C2G 就够了,不行能够随时再加。
点击创立,几秒钟即可发动开发环境。
接下来在操作选项中点击 Cursor,将会主动翻开本地的 Cursor 编程 IDE。
接着会提示装置 Devbox 插件,装置后即可主动衔接开发环境。
是不是十分简略?直接省掉了装备域名解析、请求 SSL 证书,装备网关等与开发无关的繁琐操作,爽!
初始化项目
现在咱们需求初始化一个 Go 项目并装置相关依靠。在 Cursor 的终端中履行以下指令:
go mod init go-db-demo
go mod tidy
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
运用 GORM 衔接 MySQL 数据库
接下来咱们会创立一个简略的 demo 来运用 GORM 这个 Go 言语的 ORM 结构来衔接 MySQL 数据库。
整个项目的目录结构如下:
├── main.go
├── config/
│ └── config.go
├── models/
│ └── user.go
├── database/
│ └── database.go
├── repository/
│ └── user_repository.go
└── go.mod
首要咱们在 config
目录下创立一个 config.go
文件,装备数据库的衔接信息,包括 MySQL 的用户名、暗码、数据库称号、数据库地址、数据库端口等。
package config
import (
"fmt"
)
var (
DBUser = "root"
DBPassword = "9w7zjt8f"
DBName = "testdb"
DBHost = "test1-db-mysql.ns-kc811077.svc"
DBPort = "3306"
)
func GetDSN() string {
return fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
DBUser, DBPassword, DBHost, DBPort, DBName)
}
接下来在 database
目录下创立 database.go
文件,用于初始化数据库衔接:
package database
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
"go-db-demo/config"
"log"
)
var DB *gorm.DB
func Connect() {
dsn := config.GetDSN()
var err error
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatalf("Failed to connect to database: %v", err)
}
log.Println("Database connected successfully!")
}
现在咱们在 models
目录下创立 user.go
文件,界说 User 模型:
package models
import "gorm.io/gorm"
type User struct {
gorm.Model
Name string `json:"name"`
Email string `json:"email" gorm:"unique"`
}
接下来咱们需求完成一些根本的数据库操作功用。咱们将在 models
目录下创立 user_operations.go
文件,用于界说用户相关的增修改查操作。
这些操作包括:
- 创立新用户
- 依据 ID 查询用户
- 更新用户信息
- 删去用户
下面是具体的完成代码:
package repository
import (
"go-db-demo/database"
"go-db-demo/models"
)
func CreateUser(user *models.User) error {
return database.DB.Create(user).Error
}
func GetUserByID(id uint) (*models.User, error) {
var user models.User
err := database.DB.First(&user, id).Error
return &user, err
}
func UpdateUser(user *models.User) error {
return database.DB.Save(user).Error
}
func DeleteUser(id uint) error {
return database.DB.Delete(&models.User{}, id).Error
}
现在让咱们在主程序中运用这些功用。在 main.go
文件中,咱们将初始化数据库衔接,并履行一些根本的 CRUD 操作来测验咱们的完成:
package main
import (
"fmt"
"go-db-demo/database"
"go-db-demo/models"
"go-db-demo/repository"
)
func main() {
// 衔接数据库
database.Connect()
// 主动搬迁数据库结构
database.DB.AutoMigrate(&models.User{})
// 创立用户
newUser := &models.User{Name: "John Doe", Email: "[email protected]"}
if err := repository.CreateUser(newUser); err != nil {
fmt.Println("Error creating user:", err)
} else {
fmt.Println("User created:", newUser)
}
// 查询用户
user, err := repository.GetUserByID(newUser.ID)
if err != nil {
fmt.Println("Error fetching user:", err)
} else {
fmt.Printf("Fetched user: %#v\n", user)
}
// 更新用户
user.Name = "John Updated"
if err := repository.UpdateUser(user); err != nil {
fmt.Println("Error updating user:", err)
} else {
fmt.Println("User updated:", user)
}
// 删去用户
if err := repository.DeleteUser(user.ID); err != nil {
fmt.Println("Error deleting user:", err)
} else {
fmt.Println("User deleted successfully")
}
}
现在咱们现已完成了根本的 CRUD 操作代码,咱们来测验一下。
在 Cursor 的终端中履行以下指令:
go run main.go
现在你将看到程序对数据库的一系列操作成果,包括:
- 创立用户的成果信息
- 查询用户的具体数据
- 更新用户后的状况
- 删去用户确实认信息
输出大致如下:
进一步完善
咱们的 demo 还能够持续完善和扩展,比方:
1. 增加数据验证
咱们能够在创立和更新用户时增加数据验证逻辑,比方:
- 验证邮箱格局是否正确
- 查看用户名长度是否适宜
- 保证必填字段不为空
2. 接口化
将数据库操作封装成 RESTful API:
- 完成 HTTP 接口
- 增加接口认证
- 完成接口版别操控
你能够持续运用 Cursor 的 AI 才能来完成这些功用,经过自然言语描绘咱们想要完成的功用,它就能帮咱们生成相应的代码。
比方,咱们能够这样描绘:“帮我完成一个用户数据的批量导入功用,包括事务处理和过错回滚机制。”
Cursor 就会依据咱们的描绘,生成相应的代码完成。
总结
在传统开发中,衔接开发环境的数据库就像是穿越千山万水去约会 - 要配 IP、调防火墙、改装备。但在 Sealos 中,Cursor 和数据库就像住在近邻的两小无猜,想约就约,连个电话都不必打。这种开发体会,不就是咱们每个开发者心中的 “抱负型” 吗?
有了这对神仙伙伴,你就能够把更多精力放在完成产品构思上,而不是被繁琐的环境装备耗尽耐性。