jianghuKnex 数据历史

学习目标

  • 数据历史是什么:数据库历史是指数据库中数据随时间变化的记录,包括数据的创建、更新和删除。数据库历史记录是一种重要的功能,可以帮助用户追踪数据的变化,了解数据的演变过程,以及恢复因误操作或意外事件导致的数据丢失。
  • 如何在常规的数据操作中开启数据历史
  • 管理历史数据模板page

1. 使用 jianghuKnex开启数据历史

在江湖项目中,可以使用 jianghuKnex.jhInsertjianghuKnex.jhUpdatejianghuKnex.jhDelete 操作数据。下面是示例代码:

  1. // 选择全部数据记录
  2. await this.app.jianghuKnex('${表的名字}').select();
  3. // 增加一条数据记录
  4. await this.app.jianghuKnex('${表的名字}').jhInsert({id: 1, data: 'abc'});
  5. // 更新id为1的数据记录
  6. await this.app.jianghuKnex('${表的名字}').where({id: 1}).jhUpdate({data: '123'});
  7. // 删除id为1的数据记录
  8. await this.app.jianghuKnex('${表的名字}').where({id: 1}).jhDelete({id: 1});

这些操作将会把数据的变更记录到 _record_history 表中。
注:只使用基础的 insertupdatedelete 时,将不会生成数据记录

2. 管理数据历史

使用 jianghu-init page --type=record-history-page 命令创建一个用于管理数据历史记录的页面。
执行该命令后,将自动生成一个名为 recordHistoryManagement 的页面,访问该页面即可查看到上述 jhInsertjhUpdatejhDelete 操作在 _record_history 表中的记录。

  1. $ cd my-basic
  2. $ jianghu-init page --type=record-history-page
  3. 初始化数据库连接成功
  4. 开始生成 CRUD
  5. ? Please input pageId recordHistory
  6. 开始生成 recordHistory CRUD
  7. 生成 recordHistory vue 文件完成
  8. 正在执行 -- 创建 page
  9. 正在执行 -- 创建 resource
  10. 生成 recordHistory sql 文件完成
  11. 生成 recordHistory service 文件完成
  12. init crud is success
  13. jianghu init page is success
  14. $ npm run dev
  15. 2023-04-10 20:40:30,583 INFO 79594 [master] agent_worker#1:79596 started (706ms)
  16. 2023-04-10 20:40:31,419 INFO 79594 [master] @jianghujs/jianghu started on http://127.0.0.1:7001 (1543ms)

打开浏览器访问 http://127.0.0.1:7001
reocrdHistory.png

小结

本文介绍了数据库历史记录的概念以及在江湖项目中如何使用 jianghuKnex 记录数据的变更。同时,我们还介绍了如何使用 jianghu-init 命令创建一个用于管理数据历史记录的页面。

作业

  1. 使用jianghu-init project创建一个basic项目
  2. 使用jianghu-init page创建一个用于管理数据历史记录的页面
  3. 创建一个service,使用jianghuKnex插入数据,并观察数据历史记录新增内容