5. todos 表是如何自动创建的
这是通过 GORM 的自动迁移功能实现的,具体在 config/database.go 文件中的这段代码:
go
// :d:\works\RD\todo-list\config\database.go
// 自动迁移数据库结构
err = db.AutoMigrate(&models.Todo{})
if err != nil {
return nil, err
}AutoMigrate 会根据 models/todo.go 中定义的 Todo 结构体自动创建或更新数据库表结构。它会:
- 如果表不存在,创建新表
- 如果表存在但缺少某些字段,添加新字段
- 如果表中的字段类型与模型不匹配,修改字段类型
因为 Todo 结构体嵌入了 gorm.Model,所以会自动创建以下字段:
- id (主键)
- created_at (创建时间)
- updated_at (更新时间)
- deleted_at (软删除时间)
以及我们自定义的字段:
- title
- description
- due_date
- completed