
enspirit/dbagentDbAgent 通过三个主要工具帮助管理关系型数据库生命周期:
迁移(Migrations):基于 Sequel 实现,可通过简单命令 rake db:migrate 执行迁移,支持超级用户和普通用户两种迁移模式。
监控(Spy):使用 Schemaspy 生成可浏览的数据库 schema 文档,通过简单 Web 界面随时查看。
种子数据(Seed):以分层 JSON 文件组织数据集,支持维护、安装和清空数据库内容,特别适用于自动化测试等场景。
DbAgent 推荐以 Docker 镜像形式使用,镜像名称为 enspirit/dbagent。只需挂载迁移文件和数据文件夹即可开始使用。
详情可参考示例文件夹(examples folder)。
DBAGENT_ROOT_FOLDER 主文件夹,用于存放数据、迁移文件和视图(必填)DBAGENT_LOGLEVEL 日志级别,默认为 WARNDBAGENT_LOGSQL 是否记录 Sequel 的 SQL 查询,默认为 noDBAGENT_ADAPTER Sequel 适配器,默认为 postgresDBAGENT_HOST 数据库服务器主机,默认为 localhostDBAGENT_PORT 数据库服务器端口,默认为 5432DBAGENT_DB 数据库名称,默认为 suppliers-and-partsDBAGENT_USER 数据库用户,默认为 dbagentDBAGENT_PASSWORD 数据库密码,默认为 dbagentDBAGENT_SOCKET 数据库服务器 socket(当不使用 host/port 时)DBAGENT_SUPER_USER 超级用户名称(仅 PostgreSQL)DBAGENT_SUPER_DB 超级用户数据库(仅 PostgreSQL)DBAGENT_SUPER_PASSWORD 超级用户密码(仅 PostgreSQL)DBAGENT_VIEWPOINT 使用 db:flush 时的 Bmg 视图(类名)以下 Rake 任务用于数据库管理,通常需在 Docker 容器内执行:
rake db:check-seeds # 检查所有种子数据是否可正确安装 rake db:create # 创建新用户和数据库(谨慎使用) rake db:drop # 删除用户和数据库(谨慎使用) rake db:flush[to] # 将数据库内容清空为指定数据集 rake db:migrate # 执行数据库迁移 rake db:ping # 测试数据库连接,确认迁移准备就绪 rake db:rebuild # 从 scratch 重建数据库(谨慎使用) rake db:repl # 打开数据库 REPL 终端 rake db:seed[from] # 安装指定种子数据集 rake db:spy # 将 schema 文档生成到 database/schema 目录 rake db:backup # 备份数据库到 backups 文件夹 rake db:restore[match] # 从 backups 文件夹恢复最后一个匹配的备份文件 rake db:revive # 快捷执行 db:restore 和 db:migrate
GET /schema/ # 浏览数据库 schema(需先执行 `rake db:spy`) POST /seeds/install?id=... # 安装指定数据集,id 为 data 文件夹中的子文件夹名称 POST /seeds/flush?id=... # 将当前数据库内容清空为指定数据集
bundle install
测试需本地安装 PostgreSQL,并创建 suppliers-and-parts 数据库及 dbagent 用户:
sudo su postgres -c 'createuser --createdb dbagent -P'
DbAgent 默认使用 suppliers-and-parts 数据库,用户/密码为 dbagent/dbagent。如需修改,需通过环境变量调整。
DBAGENT_ROOT_FOLDER=examples/suppliers-and-parts bundle exec rake db:create db:migrate db:seed['base']
测试需本地安装 Docker,执行:
make test
测试后清理资源:
make clean
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务