Closed
Description
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
?