Postgres default values don't work with active record

Activerecord sets the columns that are not specified to NULL. Postgres
presumes that since your insert statement said to set the column to
null you meant to set it null and ignores the default. Is there a way
to tell activerecord not set missing attributes to null?

Thanks.

On Aug 5, 2:34pm, Tim U. [email protected] wrote:

Activerecord sets the columns that are not specified to NULL. Postgres
presumes that since your insert statement said to set the column to
null you meant to set it null and ignores the default. Is there a way
to tell activerecord not set missing attributes to null?

I don’t think so - I think activerecord is expecting to be able to
read the default values out of the database schema, although that
assumes that the default is some fixed value.
It should be possible to do something like this though, since updates
only write unchanged columns.

Fred

Activerecord sets the columns that are not specified to NULL. Postgres
presumes that since your insert statement said to set the column to
null you meant to set it null and ignores the default. Is there a way
to tell activerecord not set missing attributes to null?

This might be useful. GitHub - FooBarWidget/default_value_for: Provides a way to specify default values for ActiveRecord models

I don’t think so - I think activerecord is expecting to be able to
read the default values out of the database schema, although that
assumes that the default is some fixed value.
It should be possible to do something like this though, since updates
only write unchanged columns.

In postgres sometimes the default values are functions like for
example UUID fields. It would work fine if it sent DEFAULT instead of
NULL for the missing fields and of course it could just not mention
them either.

I was wondering if there is a flag somewhere in AR that says “Don’t
send NULLs for missing attributes” or something.

Tim U. wrote in post #1015220:

I don’t think so - I think activerecord is expecting to be able to
read the default values out of the database schema, although that
assumes that the default is some fixed value.
It should be possible to do something like this though, since updates
only write unchanged columns.

In postgres sometimes the default values are functions like for
example UUID fields. It would work fine if it sent DEFAULT instead of
NULL for the missing fields and of course it could just not mention
them either.

I was wondering if there is a flag somewhere in AR that says “Don’t
send NULLs for missing attributes” or something.

Hi,

Were there any updates on this? I’m facing the same problem. Any
solution?

Regards