efe87321b2
Testing Tweaks * parallel * slowestquery * split * cleanup * health * dynamiccores * go * profile * timeout * commitmychanges * taskfile * sqlcheckstart * client * cost * ctxtimeout
59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
---
|
|
version: "2"
|
|
servers:
|
|
- engine: postgresql
|
|
uri: "${DB_URI_GENERATE}"
|
|
sql:
|
|
- name: "db"
|
|
engine: "postgresql"
|
|
queries: "internal/database/queries/"
|
|
schema: "internal/database/migrations"
|
|
rules:
|
|
- sqlc/db-prepare
|
|
- no-delete
|
|
- no-pg
|
|
- no-seq-scan
|
|
- too-costly
|
|
database:
|
|
managed: true
|
|
gen:
|
|
go:
|
|
package: "repository"
|
|
out: "internal/database/repository"
|
|
sql_package: "pgx/v5"
|
|
emit_pointers_for_null_types: true
|
|
emit_empty_slices: true
|
|
emit_db_tags: true
|
|
emit_result_struct_pointers: true
|
|
emit_params_struct_pointers: true
|
|
emit_enum_valid_method: true
|
|
emit_sql_as_comment: true
|
|
overrides:
|
|
- db_type: "uuid"
|
|
go_type:
|
|
import: "github.com/google/uuid"
|
|
type: "UUID"
|
|
- db_type: "uuid"
|
|
nullable: true
|
|
go_type:
|
|
import: "github.com/google/uuid"
|
|
type: "UUID"
|
|
pointer: true
|
|
- db_type: "unsignedsmallint"
|
|
go_type: "uint16"
|
|
rules:
|
|
- name: no-pg
|
|
message: "invalid engine: not postgresql"
|
|
rule: |
|
|
config.engine != "postgresql"
|
|
- name: no-delete
|
|
message: "don't use delete statements"
|
|
rule: |
|
|
query.sql.contains("DELETE")
|
|
- name: too-costly
|
|
message: "Query cost estimate is too high"
|
|
rule: "postgresql.explain.plan.total_cost > 1000000000.0"
|
|
- name: no-seq-scan
|
|
message: "Query plan results in a sequential scan"
|
|
rule: "postgresql.explain.plan.node_type == 'Seq Scan'"
|