sqlc
Working with sqlc and database queries
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
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
- SQLite:
-
Output:
- SQLite:
pkg/database/sqlitedb - PostgreSQL:
pkg/database/postgresdb - MySQL:
pkg/database/mysqldb
- SQLite:
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:
- Extract the
Querierinterface from thepostgresdbbackend. - Generate the common
Querierinterface inpkg/database/querier.go. - Generate common domain models in
pkg/database/models.go. - Generate database wrappers (
wrapper_sqlite.go,wrapper_postgres.go,wrapper_mysql.go).
go generate ./pkg/database
[!IMPORTANT] Do NOT manually edit
pkg/database/querier.goorpkg/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
sqlfluffto lint and format SQL files before runningsqlc generate.sqlfluff lint db/query.*.sql sqlfluff format db/query.*.sql
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-26
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!