Redmine 中几个重要的 MySQL table

发表于:2018-6-29 13:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:compulsive    来源:博客园

  Redmine 系统大部分的数据都是保存在数据库中的,为了了解Redmine系统的整体结构,有必要搞清楚这些数据是怎么保存的,表的结构是什么样的,里面有哪些内容。今天就研究一下这方面的内容,主要以code review相关的内容为主。
  首先介绍几个常用MySQL操作命令:
  ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
  CREATE: 建立新的数据库或数据表。
  DELETE: 删除表的记录
  DROP: 删除数据表或数据库。
  INDEX: 建立或删除索引。
  INSERT: 增加表的记录。
  SELECT: 显示/搜索表的记录。
  UPDATE: 修改表中已存在的记录。
  这些命令使用起来比较简单,具体用法可以查看相关的资料。
  使用查询命令可以发现使用code review之后redmine一共使用了51个表。其中比较重要的如下几个:
  1、projects
  mysql> select id, name description, created_on, updated_on, identifier from projects;
  +----+----------------+---------------------+---------------------+------------+
  | id | description    | created_on          | updated_on          | identifier |
  +----+----------------+---------------------+---------------------+------------+
  |  1 | taobao project | 2011-08-25 14:44:47 | 2011-08-25 14:44:47 | taobao     |
  +----+----------------+---------------------+---------------------+------------+
  记录创建的工程,内容不多,主要的有项目名称,创建时间,标识符等。
  2、changesets
  mysql> select id, repository_id, revision, committer, committed_on, comments, commit_date from changesets limit 4;
  +----+---------------+----------+-----------+---------------------+----------------------+-------------+
  | id | repository_id | revision | committer | committed_on        | comments             | commit_date |
  +----+---------------+----------+-----------+---------------------+----------------------+-------------+
  |  1 |             1 | 1        | svncenter | 2011-08-10 14:30:10 | add folder by System | 2011-08-10  |
  |  2 |             1 | 2        | svncenter | 2011-08-10 14:30:10 | add folder by System | 2011-08-10  |
  |  3 |             1 | 3        | svncenter | 2011-08-10 14:30:11 | add folder by System | 2011-08-10  |
  |  4 |             1 | 4        | svncenter | 2011-08-10 14:30:11 | add folder by System | 2011-08-10  |
  +----+---------------+----------+-----------+---------------------+----------------------+-------------+
  保存代码每一次修改的记录,其中repository_id代表属于那个工程的代码库,revision是版本号,每次修改都回增加一个版本号,committer是修改人,committed_on代表修改时间,comments是修改内容的注释,commit_date是创建日期。
  3、changes
  mysql> select * from changes limit 4;
  +----+--------------+--------+-----------------+-----------+---------------+----------+--------+
  | id | changeset_id | action | path            | from_path | from_revision | revision | branch |
  +----+--------------+--------+-----------------+-----------+---------------+----------+--------+
  |  1 |            1 | A      | /trunk          | NULL      | NULL          | NULL     | NULL   |
  |  2 |            2 | A      | /trunk/tmstable | NULL      | NULL          | NULL     | NULL   |
  |  3 |            3 | A      | /branches       | NULL      | NULL          | NULL     | NULL   |
  |  4 |            4 | A      | /tags           | NULL      | NULL          | NULL     | NULL   |
  +----+--------------+--------+-----------------+-----------+---------------+----------+--------+
  详细记录changesets中的每一个变化,changeset_id对应之前changesets中的变化版本,每一个版本可能会对应多个changes,action是变化的操作,有三种,A代表新增文件或文件夹,D代表删除文件或文件夹,M代表修改文件或文件夹,path代表文件的路劲,from_path代表来源文件的路径,只在M是有效,from_revision和revision代表修改前后的版本,一般为NULL。
  4、repositories
  mysql> select id, project_id, url, type, path_encoding from repositories;
  +----+------------+------------------------------------------+------------+---------------+
  | id | project_id | url                                      | type       | path_encoding |
  +----+------------+------------------------------------------+------------+---------------+
  |  1 |          1 | http://svn.app.taobao.net/repos/tmstable | Subversion | NULL          |
  +----+------------+------------------------------------------+------------+---------------+
  版本库保存编辑的SVN版本路径。
  Redmine中编辑的主要代码就保存在这几个数据库中,通过查询这些数据库表,可以得到我们要评审的代码表。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号