Initial commit using sqlc for query generation.
Basic crud ops and join queries to use sqlc, more complex either from scratch or with a query builder later.
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
-- name: GetUser :one
|
||||||
|
SELECT * FROM users
|
||||||
|
WHERE id = $1 LIMIT 1;
|
||||||
|
|
||||||
|
-- name: ListUsers :many
|
||||||
|
SELECT * FROM users
|
||||||
|
ORDER BY name;
|
||||||
|
|
||||||
|
-- name: CreateUser :one
|
||||||
|
INSERT INTO users (
|
||||||
|
name, age
|
||||||
|
) VALUES (
|
||||||
|
$1, $2
|
||||||
|
)
|
||||||
|
RETURNING *;
|
||||||
|
|
||||||
|
-- name: UpdateUser :exec
|
||||||
|
UPDATE users
|
||||||
|
set name = $2,
|
||||||
|
age = $3
|
||||||
|
WHERE id = $1;
|
||||||
|
|
||||||
|
-- name: DeleteUser :exec
|
||||||
|
DELETE FROM users
|
||||||
|
WHERE id = $1;
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
CREATE TABLE users (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
name text NOT NULL,
|
||||||
|
age int NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
version: "2"
|
||||||
|
sql:
|
||||||
|
- engine: "postgresql"
|
||||||
|
queries: "sql/queries.sql"
|
||||||
|
schema: "sql/schema.sql"
|
||||||
|
gen:
|
||||||
|
go:
|
||||||
|
# 'db' is a standard package name for database logic
|
||||||
|
package: "db"
|
||||||
|
out: "internal/db"
|
||||||
|
sql_package: "pgx/v5"
|
||||||
|
# Recommended for better Go code:
|
||||||
|
emit_json_tags: true
|
||||||
|
emit_interface: true
|
||||||
|
emit_exact_table_names: false
|
||||||
Reference in New Issue
Block a user