--- version: "2" servers: - engine: postgresql uri: "${DB_URI}" sql: - name: "db" engine: "postgresql" queries: "database/queries/" schema: "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 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 > 400.0" - name: no-seq-scan message: "Query plan results in a sequential scan" rule: "postgresql.explain.plan.node_type == 'Seq Scan'"