MODULE-server 开发说明

module-server 模块的核心目的是完成某个业务模块的数据模型、数据库迁移管理,并为业务平台提供数据管理的接口服务。

代码说明:

1)根据业务需求,完成数据模型定义

拉取最新的项目代码,在本地启动服务后即可开始工作和代码提交:

# 默认连接预览(preview)环境的数据库: database/config.json
pnpm run dev 

⁉️ 如果你的工作涉及到数据库的变更:

  1. 首先按照 database/config.json 文件中的 development & test 环境信息,创建本地数据库账号及 database:

    • 建议使用 MySQL 8.0 版本,与线上环境保持一致;
    • 账号密码默认为: root / P@ssw0rd
    • 手动创建本地需要的开发和测试数据库:pinjia_dev & pinjia_test
  2. 新建 migration 文件并执行迁移:

    # 快速生成 migration 文件,也可以手动创建
    npx sequelize migration:generate --name=create-users
    # 📝 创建或修改数据表结构, 记得补全注释信息
    code database/migrations/${timestamp}-create-users.js
    # 执行 migrate 进行数据库变更,db:migrate:undo
    npx sequelize db:migrate   
    
  3. 建议单独提交 schema 变更代码进行审阅,提交合并后,预览(preview)环境会自动进行同步变更;

    • 破坏性的数据库变更需要进行审阅才可以发布;
    • 本地无法对预览环境数据库直接运行迁移,无变更权限;
  4. 如果你想在开发时使用本地数据库,可以设置环境变量:

    NODE_ENV=local pnpm run dev  # 快捷命令:pnpm run local
    

🔖 项目负责人职责:完成数据库模型定义修改 & 审阅发布后,需要手动进行 API 文档 - 数据模型 的数据库导入覆盖。

深入了解:

2)API 文档先行,完成数据服务接口代码

在进行具体的接口开发任务时,需要遵循 API 文档先行 的开发方式;

  1. 开发中的接口在 Apifox 分支 preview 迭代更新,不允许直接修改 main 分支的接口
  2. 在对应项目的接口管理中新增或修改已有接口,完成详细的接口说明和 mock 配置
  3. 根据接口文档,完成具体的服务接口代码修改工作,提交代码审阅;

单元测试必须在提交审阅前完成,阅读教程

🔖 项目负责人职责:在代码审阅完成及发布预览环境后,需要手动合并接口文档到 main 分支;

还有就是记得及时更新 API 文档的接口状态 [ 开发中/测试中/已发布 ]

3)生产环境发布流程

云托管 CLI 工具文档:https://cloud.weixin.qq.com/cli/guide.html

pnpm install -g @wxcloud/cli

记得配置生产环境的必要环境变量,否则会无法启动,导致部署失败;

wxcloud migrate # 生产 Dockfile 以及 wxcloud.config.js 文件
wxcloud deploy  # 部署密钥文件位置 ~/.wxcloudconfig

延伸文档:如何在本地进行容器调试