楷模
创建一个User
模型并创建一个名为user.go
ins in models
目录的文件,并用gorm定义结构。
package models
import "gorm.io/gorm"
// User struct
type User struct {
gorm.Model
Name string `json:"name"`
Email string `json:"email"`
Website string `json:"website"`
}
连接到数据库
创建一个名为add-users-table
的开发数据库分支。
$ pscale branch create fiber-pscale add-users-table
打开一个新的终端选项卡,我们将连接到附加用户台上分支中的数据库,然后收听3309
端口。查看更多Connect using client certificates。
$ pscale connect fiber-pscale add-users-table --port 3309
在模型目录中创建一个名为database.go
的文件,并添加一个函数以连接到数据库。
package models
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var DB *gorm.DB
func ConnectDatabase() {
// refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details
dsn := "root:@tcp(127.0.0.1:3309)/fiber-pscale?charset=utf8mb4&parseTime=True&loc=Local"
database, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// Migrate the users table
database.AutoMigrate(&User{})
DB = database
}
打开您的main.go
,并致电ConnectDatabase
函数以迁移表并连接到数据库。
import (
// ...
"github.com/maful/fiber-pscale/models"
)
func main() {
// ...
models.ConnectDatabase() // New
//
app.Use(logger.New())
}
然后运行App go run cmd/main.go
,Gorm将自动将表迁移到add-users-table
分支中。如何知道迁移是否成功?您可以在Planetscale仪表板中检查以下分支,或使用CLI查看add-users-table
分支的模式。
$ pscale branch schema fiber-pscale add-users-table
-- users --
CREATE TABLE `users` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`created_at` datetime(3) DEFAULT NULL,
`updated_at` datetime(3) DEFAULT NULL,
`deleted_at` datetime(3) DEFAULT NULL,
`name` longtext,
`email` longtext,
`website` longtext,
PRIMARY KEY (`id`),
KEY `idx_users_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
在您创建部署请求之前,该架构不会适用于主分支。最后,停止从add-users-table
分支或ctrl+c。