-
-
Notifications
You must be signed in to change notification settings - Fork 246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arbitrary struct field name for belongs_to relation leads to error with eager creation. #469
Comments
aeneasr
added a commit
to ory/kratos
that referenced
this issue
Dec 1, 2019
This is a major refactoring of the internal DBAL. After a successful proof of concept and evaluation of gobuffalo/pop, we believe this to be the best DBAL for Go at the moment. It abstracts a lot of boilerplate code away. As with all sophisticated DBALs, pop too has its quirks. There are several issues that have been discovered during testing and adoption: gobuffalo/pop#136 gobuffalo/pop#476 gobuffalo/pop#473 gobuffalo/pop#469 gobuffalo/pop#466 However, the upside of moving much of the hard database/sql plumbing into another library cleans up the code base significantly and reduces complexity. As part of this change, the "ephermal" DBAL ("in memory") will be removed and sqlite will be used instead. This further reduces complexity of the code base and code-duplication. To support sqlite, CGO is required, which means that we need to run tests with `go test -tags sqlite` on a machine that has g++ installed. This also means that we need a Docker Image with `alpine` as opposed to pure `scratch`. While this is certainly a downside, the upside of less maintenance and "free" support for SQLite, PostgreSQL, MySQL, and CockroachDB simply outweighs any downsides that come with CGO.
aeneasr
added a commit
to ory/kratos
that referenced
this issue
Dec 1, 2019
This is a major refactoring of the internal DBAL. After a successful proof of concept and evaluation of gobuffalo/pop, we believe this to be the best DBAL for Go at the moment. It abstracts a lot of boilerplate code away. As with all sophisticated DBALs, pop too has its quirks. There are several issues that have been discovered during testing and adoption: gobuffalo/pop#136 gobuffalo/pop#476 gobuffalo/pop#473 gobuffalo/pop#469 gobuffalo/pop#466 However, the upside of moving much of the hard database/sql plumbing into another library cleans up the code base significantly and reduces complexity. As part of this change, the "ephermal" DBAL ("in memory") will be removed and sqlite will be used instead. This further reduces complexity of the code base and code-duplication. To support sqlite, CGO is required, which means that we need to run tests with `go test -tags sqlite` on a machine that has g++ installed. This also means that we need a Docker Image with `alpine` as opposed to pure `scratch`. While this is certainly a downside, the upside of less maintenance and "free" support for SQLite, PostgreSQL, MySQL, and CockroachDB simply outweighs any downsides that come with CGO.
Fixed with #546. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
When using a
has_many
relation, it seems to be impossible to set the child's struct field name of the foreign key, instead<name>ID
is apparently required.Steps to Reproduce the Problem
With fizz
Will always result in:
could not set '3aecf318-0fb6-43b3-b3fe-a0de91042f65' in '<invalid reflect.Value>'
(or some other uuid value).Only changing
RequestFoo
toRequestID
resolves the issue:Expected Behavior
I would expect the struct field name to be customizable. I would also expect this to work if
RequestID
was missing from the struct:I would also expect the behavior to reflect other struct fields with
db
tags. This works with eager fetching, but not eager creation.Actual Behavior
It seems like this is some fixed behavior. This is also not explained in the docs.
Info
Using pop latest master without buffalo.
The text was updated successfully, but these errors were encountered: