Skip to content

bug: support for overriding id field #107

@philwinder

Description

@philwinder

Hi again,
According to the ent docs, you can override the id field to be something other than an int.

If you use a Field with just an id field, it fails to compile:

// Fields of the Model.
func (Model) Fields() []ent.Field {
	return []ent.Field{
		field.String("id"),
	}
}
...
❯ go generate ./...
❯ go run -mod=mod main.go
# todo/ent/ogent
ent/ogent/ogent.go:31:61: undefined: CreateModelReq
ent/ogent/ogent.go:93:61: undefined: UpdateModelReq

If you add some other fields, it compiles, but POST fails:

func (Model) Fields() []ent.Field {
	return []ent.Field{
		field.String("id"),
		field.Time("created_at").
			Optional().
			Default(time.Now),
		field.String("name").
			Optional(),
	}
}
...
❯ curl -X POST http://localhost:8080/models  -H "Content-Type: application/json" -d '{"id": "fdsa90fds-890fgs", "name": "test"}'
{"error_message":"NOT NULL constraint failed: models.id"}% 

If I'm doing something wrong I apologise. If not, it would be great to get support for overriding IDs.

Any workaround in the meantime?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions