sqlc.yaml
version: "1"
packages:
- name: "authors"
path: "generated/repo/authors"
queries: "./files/queries/authors.sql"
schema: "./files/schema/"
engine: "postgresql"
emit_json_tags: true
emit_prepared_queries: false
emit_interface: false
emit_exact_table_names: false
- name: "books"
path: "generated/repo/books"
queries: "./files/queries/books.sql"
schema: "./files/schema/"
engine: "postgresql"
emit_json_tags: true
emit_prepared_queries: false
emit_interface: false
emit_exact_table_names: false
The ./files/schema/ directory contains golang-migrate files.
000001_authors.up.sql
CREATE TABLE authors (
id BIGSERIAL PRIMARY KEY,
name text NOT NULL,
bio text
);
000002_books.up.sql
CREATE TABLE books (
id SERIAL PRIMARY KEY,
title VARCHAR(120) NOT NULL
);
And directory ./files/queries contains sql queries for sqlc.
authors.sql
-- name: ListAuthors :many
SELECT * FROM authors
ORDER BY name;
books.sql
-- name: ListBooks :many
SELECT * FROM books;
When I run sqlc generate, it will generate ./generated/repo/authors/ and ./generated/repo/books as expected.
When I see the ./generated/repo/authors/models.go and ./generated/repo/books/models.go, both have 2 struct types which is Author and Book.
models.go
// Code generated by sqlc. DO NOT EDIT.
package books
import (
"database/sql"
)
type Author struct {
ID int64 `json:"id"`
Name string `json:"name"`
Bio sql.NullString `json:"bio"`
}
type Book struct {
ID int32 `json:"id"`
Title string `json:"title"`
}
In books package, Author type in unused, and in authors package Book type is unused.
I assumed it's generated from database schema because both package use the same schema in sqlc.yaml.
Is it possible not to generate unused struct in models.go?
sqlc.yaml
The
./files/schema/directory contains golang-migrate files.000001_authors.up.sql000002_books.up.sqlAnd directory
./files/queriescontains sql queries forsqlc.authors.sqlbooks.sqlWhen I run
sqlc generate, it will generate./generated/repo/authors/and./generated/repo/booksas expected.When I see the
./generated/repo/authors/models.goand./generated/repo/books/models.go, both have 2 struct types which isAuthorandBook.models.goIn
bookspackage,Authortype in unused, and inauthorspackageBooktype is unused.I assumed it's generated from database schema because both package use the same schema in
sqlc.yaml.Is it possible not to generate unused struct in
models.go?