用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/voidvec/fulla --skill db-reset命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
构建和测试C++ OAuth2后端,包含正确的依赖管理
Create versioned SQL migration files for database schema changes, following project conventions
在Docker Compose环境中执行OAuth2系统的完整集成测试和健康检查。当用户需要在代码变更后验证功能、运行端到端测试、检查Docker环境健康状态、或需要验证整个OAuth2系统(前端+后端+数据库+缓存)的集成时使用此技能。确保在Docker环境中测试所有组件的集成,包括健康检查、OAuth2流程、API端点、数据库连接、Redis缓存和前后端通信。
正在显示 SKILL.md
| name | db-reset |
| description | 重置测试数据库(清空并重新初始化所有表结构和数据) |
| disable-model-invocation | true |
⚠️ 警告:此操作会清空所有数据并重建数据库!
通过用户调用:/db-reset
| 配置项 | 值 |
|---|---|
| 主机 | localhost |
| 端口 | 5432 |
| 用户名 | fulla_user |
| 密码 | 123456 |
| 数据库 | fulla_db |
# Windows
Get-Process -Name "fulla-server" -ErrorAction SilentlyContinue | Stop-Process -Force
$env:PGPASSWORD = "123456"
psql -h localhost -U fulla_user -d postgres -c "DROP DATABASE IF EXISTS fulla_db;"
psql -h localhost -U fulla_user -d postgres -c "CREATE DATABASE fulla_db;"
数据库 schema 统一通过 apps/server/migrations/ 目录管理(V001–V024,共 24 个文件)。
$env:PGPASSWORD = "123456"
Get-ChildItem "apps\server\migrations\V*.sql" | Sort-Object Name | ForEach-Object {
psql -h localhost -U fulla_user -d fulla_db -f $_.FullName
if ($LASTEXITCODE -eq 0) { Write-Host "✅ $($_.Name)" }
else { Write-Host "❌ $($_.Name)"; exit 1 }
}
Get-ChildItem "apps\server\seed\*.sql" | ForEach-Object {
psql -h localhost -U fulla_user -d fulla_db -f $_.FullName
if ($LASTEXITCODE -eq 0) { Write-Host "✅ $($_.Name)" }
else { Write-Host "⚠️ $($_.Name) (non-critical)" }
}
$env:PGPASSWORD = $null
Write-Host "`n🎉 Database reset completed!"
$env:PGPASSWORD = "123456"
psql -h localhost -U fulla_user -d fulla_db -c "\dt"
$env:PGPASSWORD = $null
apps/server/
├── migrations/ # Schema 定义(按版本顺序执行,V001–V024 共 24 个文件)
│ ├── V001__schema_migrations.sql
│ ├── V002__oauth2_core.sql
│ ├── V003__oauth2_core_indexes.sql
│ ├── V004__users_table.sql
│ ├── V005__rbac_schema.sql
│ ├── V006__oauth2_scopes.sql
│ ├── V007__user_public_sub.sql
│ ├── V008__refresh_token_family.sql
│ ├── V009__password_reset_tokens.sql
│ ├── V010__email_verification.sql
│ ├── V011__mfa_support.sql
│ ├── V012__audit_logs.sql
│ ├── V013__account_lockout.sql
│ ├── V014__device_codes.sql
│ ├── V015__backchannel_logout.sql
│ ├── V016__token_partitioning_prep.sql
│ ├── V017__multi_tenant.sql
│ ├── V018__webauthn.sql
│ ├── V019__email_validation.sql
│ ├── V020__username_optional.sql
│ ├── V021__widen_email_verification_tokens_email.sql
│ ├── V022__mfa_pending_client_binding.sql
│ ├── V023__resource_scopes.sql
│ └── V024__users_soft_delete.sql
└── seed/ # 开发/测试环境初始数据(5 个文件)
├── bench_users.sql
├── dev_admin_user.sql
├── dev_admin_console_client.sql
├── dev_backend_client.sql
└── dev_vue_client.sql
注意: 旧的
sql/001_*.sql~sql/004_*.sql已废弃删除,所有 schema 统一在migrations/管理。物理表共 21 张:其中 19 张被 ORM 建模(model.json),另含迁移追踪表schema_migrations与归档表oauth2_access_tokens_archive。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE datname = 'fulla_db' AND pid <> pg_backend_pid();
GRANT ALL PRIVILEGES ON DATABASE fulla_db TO fulla_user;
ALTER DATABASE fulla_db OWNER TO fulla_user;
/orm-gen - 重置后重新生成 ORM 模型/build-and-test - 重建后运行测试