Test Mysql Db

👤 extraskittles 📦 v1.0.0 ⭐ 4.5 ⬇️ 407 下载
🔒 IT运维与安全 免费

📖 技能介绍


name: test-mysql-db description: Connect to test-environment MySQL databases for troubleshooting, data verification, schema inspection, and controlled validation queries. Use when the user asks to query or validate test/dev database data, investigate test-environment issues, check whether new Java/service code wrote expected records, inspect table structure, compare before/after data, or perform explicitly approved low-risk data correction in a test MySQL database.


Test MySQL DB

Use this skill to query and validate test-environment MySQL data while keeping credentials and write operations controlled.

Safety Rules

  • Treat all database credentials as secrets. Do not write hostnames, usernames, passwords, or DSNs into skill files, repo files, chat, logs, or generated artifacts unless the user explicitly asks for a redacted template.
  • Prefer read-only operations. For INSERT, UPDATE, DELETE, DDL, or stored procedure calls, get explicit user confirmation in the current conversation and state the target environment, database, table, predicate, expected row count, and rollback plan first.
  • Never run destructive broad statements such as unconstrained DELETE, unconstrained UPDATE, DROP, TRUNCATE, or schema changes unless the user explicitly asks and the target is confirmed as a disposable test database.
  • Use narrow predicates, LIMIT, and transactions where possible. For write validation, capture before/after query results.
  • Redact passwords, tokens, personal data, payment data, and secrets in final responses.

Connection Discovery

Find connection details from the safest available source:

  1. Existing project configuration for the test/dev profile, such as Spring application-dev.yml, application-test.yml, Nacos/Apollo/local config, Docker Compose, .env, CI variables, or documented runbooks.
  2. Environment variables already present in the shell, preferably:
  3. TEST_MYSQL_HOST
  4. TEST_MYSQL_PORT
  5. TEST_MYSQL_USER
  6. TEST_MYSQL_PASSWORD
  7. TEST_MYSQL_DATABASE
  8. A user-provided one-time value in chat, redacted after use in summaries.

If multiple test databases are plausible, identify the service/module and ask only for the missing disambiguation.

Query Workflow

  1. Clarify the business key to query: order number, request id, trace id, user id, batch id, table name, or service/module.
  2. Inspect relevant code/config first when the table or database is unclear. Use rg to find mapper XML, repository methods, entity classes, migration files, and datasource config.
  3. Build the smallest SQL that answers the question. Prefer selecting explicit columns over SELECT * when the table is wide or sensitive.
  4. Run read-only SQL with scripts/mysql_query.py when Python MySQL drivers are available, or use the local mysql client if the environment already provides it.
  5. Summarize findings with redacted values and include the exact safe SQL shape when useful.

Write Or Validation Workflow

For new code that writes database data:

  1. Read the implementation path to determine affected database, table, and expected fields.
  2. Query the before state if possible.
  3. Trigger or wait for the relevant test action if the user asks for end-to-end validation.
  4. Query the after state with a narrow predicate.
  5. Compare actual rows with the expected code behavior, including default values, enum values, timestamps, and nullable fields.

For explicit test-data fixes:

  1. Draft the SQL and a rollback SQL first.
  2. Ask for explicit confirmation unless the user has already given a direct command for that exact SQL and target.
  3. Run inside a transaction when supported by the operation.
  4. Verify affected row count and final state.

Helper Script

Use scripts/mysql_query.py for repeatable CLI execution:

python scripts/mysql_query.py --sql "select 1"
python scripts/mysql_query.py --database order_deve --sql-file work/query.sql --format table
python scripts/mysql_query.py --allow-write --sql-file work/fix.sql

The script reads connection values from TEST_MYSQL_* environment variables by default. It rejects non-read SQL unless --allow-write is passed.

Output Style

  • For troubleshooting, lead with the conclusion and the rows or fields that prove it.
  • For validation, report expected vs actual database state.

    这个技能的最新版本可以在7w4.net小葱技能站找到。

  • For failed connections, report which non-secret part is missing or failed, such as host, port, network reachability, driver availability, or database name.

🤖 AI 评测

这个Skill质量不错,专门用于安全地查询测试环境MySQL数据库。它默认只允许读取操作,会自动阻止删除表、截断表等危险操作,配置方式灵活,支持多种输出格式。文档清晰易懂,风险提示充分。主要不足是缺少自动化测试和依赖说明,对普通用户来说可能需要一定技术基础才能正确配置环境变量。总体而言是一款设计良好、重点突出的测试数据库工具。

📊 多维度评分

适应性4.4
规范性4.4
有效性4.6
可靠性4.4
可信度4.8

📁 包含文件 (5 个)

📄 SKILL.md 4.4 KB
📄 _meta.json 132 B
📄 agents/openai.yaml 237 B
📄 scripts/mysql_query.py 6.3 KB
📄 skill-card.md 2.3 KB