Export models to a different package #835
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Hi! Great work on this project!
I was wondering if it's currently possible to export Go model structs to a different folder package.
I think this could be a good feature for anyone who would like to make their code independent of the database backend but still use the automatically generated models.
For example:
internal/
model/
models.go
db/
postgres/
db.go
user.sql.go
querier.go
This way you could e.g. also have a mongodb provider that uses these models, but without depending on the postgres package. I'm sure you'd agree that it would be odd for mongo to use postgres.User as a type.
Is this something that's possible to do? If not, would you possibly accept a PR that adds support for it? Or it it something you're not planning on supporting for now?
Thanks
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Projects
- StatusShow more project fields🛳 Shipped
Activity
johan-lejdung commentedon Feb 22, 2023
We just tried this out at our company, for context we are using go-migrate so we have a single folder with all of our database migrations. Without a feature like this the, otherwise excellent sqlc, isn't a viable option for us.
As it stands (unless I've missed some configuration?) each generated package has a
models.gofile containing all models from our entire database.Having an option to decide where to generate the models file, and read from it on the subsequent generated packages OR being able to remove unused models would be a much needed feature.
I see this has been left untouched since 2020, is there anything I can do to help speed this along?
mpyw commentedon Jul 6, 2023
#1941 (comment)
anhnmt commentedon Jan 3, 2024
+1
mmierzwa commentedon Dec 16, 2024
Still waiting for this at the end of 2024 😊
vivere-dally commentedon Feb 4, 2026
Up
default models package, always import as `models`
kyleconroy commentedon Apr 30, 2026
What do people think of this?
https://github.com/sqlc-dev/sqlc/pull/4421/files
feat(golang): emit models to a different package (#4421)
kyleconroy commentedon May 5, 2026
Fixed here #4421