- 重构App.vue中的侧边栏布局,更新Logo设计为带有标识和副标题的新样式 - 调整顶部导航栏,增加标题区域显示当前路由标题和日期 - 修改菜单项配置,更新导航标签为更直观的中文描述 - 在Home.vue中替换原有的仪表板为新的Hero卡片和项目进展展示 - 更新Memory.vue中的学习界面,添加学习计划设置和多阶段学习模式 - 集成新的API端点路径,将baseURL从/api调整为/api/v1 - 调整整体视觉风格,包括颜色主题、字体家族和响应式布局 - 更新数据库模型以支持词库功能,添加相关的数据迁移和种子数据 - 调整认证系统的用户ID类型从整型到字符串的变更 - 更改前端构建工具从npm到pnpm,并更新相应的Dockerfile配置
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package bootstrap
|
|
|
|
import (
|
|
"memora-api/internal/config"
|
|
"memora-api/internal/model"
|
|
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func InitDB(cfg *config.Config) (*gorm.DB, error) {
|
|
return gorm.Open(mysql.Open(cfg.Database.DSN()), &gorm.Config{})
|
|
}
|
|
|
|
func AutoMigrate(db *gorm.DB) error {
|
|
if err := db.AutoMigrate(
|
|
&model.User{},
|
|
&model.WordBook{},
|
|
&model.Word{},
|
|
&model.WordSentence{},
|
|
&model.WordTranslation{},
|
|
&model.WordSynonym{},
|
|
&model.WordSynonymItem{},
|
|
&model.WordPhrase{},
|
|
&model.WordRel{},
|
|
&model.WordRelItem{},
|
|
&model.MemoryRecord{},
|
|
); err != nil {
|
|
return err
|
|
}
|
|
return seedWordBooks(db)
|
|
}
|
|
|
|
func seedWordBooks(db *gorm.DB) error {
|
|
books := []model.WordBook{
|
|
{ID: model.DefaultWordBookID, Code: "default", Name: "默认词库", SourceBookID: "DEFAULT"},
|
|
{ID: "00000000000000000000000000000002", Code: "cet4", Name: "四级词库", SourceBookID: "CET4"},
|
|
{ID: "00000000000000000000000000000003", Code: "ielts", Name: "雅思词库", SourceBookID: "IELTS"},
|
|
{ID: "00000000000000000000000000000004", Code: "toefl", Name: "托福词库", SourceBookID: "TOEFL"},
|
|
}
|
|
|
|
for i := range books {
|
|
book := books[i]
|
|
if err := db.Where("code = ?", book.Code).FirstOrCreate(&book).Error; err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|