Database 维护与配置

初始化数据库

使用 oepkgs_djtools 初始化数据库

在 tools 目录下有一个 oepkgs_djtools 脚本帮你快速的完成这个工作, 使用方法如下:


[euler_blade@samantha oepkgs_packages_configs]$ tools/oepkgs_djtools initdb -d <oepkgs_database_file_path>

子命令为 initdb

  • –database/-d: 指定数据库文件路径。

此工具的工作流程如下:

  1. 通过提供的数据库文件路径创建空文件, 如果文件已经存在就立即错误退出

  2. 通过以下操作创建数据库的 projects 和 users 空表来创建一个空白的启动数据库。

[oepkger@oepkgs-koji-hub ~]$ sqlite3 /mnt/storage/repodb/oepkgs.db
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.
sqlite> CREATE TABLE projects (JOB_ID INTEGER PRIMARY KEY AUTOINCREMENT, JOB_NAME TEXT UNIQUE NOT NULL, SCM_REPO TEXT NOT NULL, BRANCH TEXT NOT NULL, PROJ_TOKEN TEXT, YUM_REPO TEXT, USER INTEGER, SCRATCH_BUILD INTEGER DEFAULT 1, WEBHOOK_URL TEXT NOT NULL, BUILD_TAG TEXT, OS TEXT, VERSION TEXT, BUILD_TYPE TEXT, PACKAGE_NAME TEXT);

sqlite> CREATE TABLE users (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT UNIQUE NOT NULL, EMAIL TEXT, API_TOKEN TEXT, USER_PUBKEY TEXT, REPO_PREFIX TEXT NOT NULL UNIQUE);

导入 users 数据


[euler_blade@samantha oepkgs_packages_configs]$ tools/oepkgs_djtools import -t user -j users/e/eulerblade.json -d /mnt/storage/repodb/oepkgs.db

验证导入的数据


[euler_blade@samantha oepkgs_packages_configs]$ sqlite3 /mnt/storage/repodb/oepkgs.db
SQLite version 3.30.0 2019-10-04 15:03:17
Enter ".help" for usage hints.
sqlite> .header on
sqlite> .mode colum
sqlite> SELECT * FROM users;
ID          NAME        EMAIL                         API_TOKEN   USER_PUBKEY                               REPO_PREFIX
----------  ----------  ----------------------------  ----------  ----------------------------------------  ----------------------------
1           eulerblade  euler_blade@isrc.iscas.ac.cn              E0230505E0D0D2948050CADD964617B09C96FB5E  https://gitee.com/eulerblade

重置用户密码

[euler_blade@samantha oepkgs_packages_configs]$ tools/oepkgs_djtools passreset -j users/e/eulerblade.json -d /mnt/storage/repodb/oepkgs.db -p newpass

初始化用户 WebHook token

此步骤是因为目前通过 Jenkins cli 得到的用户 WebHook token 字符串与 Jenkins Web 页面上得到的 WebHook token 字符串不一致,临时加入的步骤,解决此问题后将不再使用。

管理员通过 Jenkins 访问模板 oepkgs_template 。如下图所示,点击 Generate 按钮,生成一个新的 WebHook token,记下 中的字符串,并点击 Save 按钮保存。 oepkgs.net 任务 Jenkins 模板

然后使用 oepkgs_djtools 的 hookset 子命令,保存到用户数据数据库。

$ ./oepkgs_djtools hookset -d path/to/database/file -u USERNAME -t TOKEN_STRING

Copyright © oepkgs.net All rights reserved.

版权所有 © oepkgs.net 保留所有权利

中国科学院软件研究所openEuler 社区共同发起并提供支持

京ICP备05046678号-13

Email: support(at)oepkgs.net