Workiva / eva

A distributed database-system implementing an entity-attribute-value data-model that is time-aware, accumulative, and atomically consistent
Other
565 stars 25 forks source link

Allow attribute edits that won't corrupt data #84

Open tylerwilding-wk opened 5 years ago

tylerwilding-wk commented 5 years ago

It is currently impossible to make edits to already installed attributes in eva. This can be problematic if an attribute is installed incorrectly since it will require either:

  1. A new attribute with the same name to be installed + data migration
  2. A new attribute with the same name to be installed + query and pullspec tweaks to look for both the new and old attribute
  3. Database to be wiped and the attribute to be correctly installed

While this is desirable in some cases such as a change from db.cardinality/many to db.cardinality/one as that would corrupt the database. However some operations should be safe, such as changing from db.cardinality/one to db.cardinality/many or removing :unique. A full system wide retract should also be more or less safe.

Long story short, allow operations that should be "safe" and don't allow "unsafe" operations