[Pulp-dev] Required fields for models at the DB level

Tatiana Tereshchenko ttereshc at redhat.com
Mon Nov 18 20:05:56 UTC 2019


I noticed that there is no enforcement at the DB level to require certain
fields to be present on a model.

I haven't checked all the field types but at least for TextField it's seems
to be true.
Even though `null` is False by default (`blank` as well), I can save a
model instance without most of fields set.

As an example, for UpdateRecord [0] in RPM plugin, plugin writer can do
UpdateRecord().save() and it will be fine, all the fields are set to empty
string :/ It wouldn't be possible to save it twice but it's due to the
uniqueness constraints.

In case plugin writer doesn't set properly all the required fields,
bad/corrupted model instances will be silently saved in the DB and plugin
can potentially have data migration issues later.

Any suggestions how to handle that? Or do I miss anything?

Tanya

[0]
https://github.com/pulp/pulp_rpm/blob/master/pulp_rpm/app/models.py#L440-L463
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20191118/f21b2a6f/attachment.htm>


More information about the Pulp-dev mailing list