金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

sqlc

sqlc 是面向数据库的 Agent Skill,来自 kalbasit/ncps。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

Working with sqlc and database queries

SKILL.md

下载 MD ↓
namesqlc
descriptionWorking with sqlc and database queries

SQLC Skill

This skill provides instructions for working with sqlc and database queries in the NCPS repository. NCPS supports multiple database engines (SQLite, PostgreSQL, MySQL), and sqlc is used to generate type-safe Go code from SQL queries for each engine.

Configuration

  • SQLC Config: sqlc.yml
  • Queries:
  • SQLite: db/query.sqlite.sql
  • PostgreSQL: db/query.postgres.sql
  • MySQL: db/query.mysql.sql
  • Output:
  • SQLite: pkg/database/sqlitedb
  • PostgreSQL: pkg/database/postgresdb
  • MySQL: pkg/database/mysqldb

Workflow for Query Changes

Any time a query file (db/query.<engine>.sql) is updated, you MUST follow these steps:

1. Generate SQLC Code

Run the sqlc generate command to update the generated Go files for all engines.

sqlc generate

2. Regenerate Database Wrappers and Models

Run go generate for the pkg/database package. This command uses gen-db-wrappers to automatically: 1. Extract the Querier interface from the postgresdb backend. 2. Generate the common Querier interface in pkg/database/querier.go. 3. Generate common domain models in pkg/database/models.go. 4. Generate database wrappers (wrapper_sqlite.go, wrapper_postgres.go, wrapper_mysql.go).

go generate ./pkg/database

[!IMPORTANT] Do NOT manually edit pkg/database/querier.go or pkg/database/models.go. They are fully automated.

Best Practices

  • Consistency: Ensure that equivalent queries exist for all supported engines unless the feature is engine-specific.
  • Linting: Use sqlfluff to lint and format SQL files before running sqlc generate.

bash sqlfluff lint db/query.*.sql sqlfluff format db/query.*.sql

来源:kalbasit/ncps · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本